sql中,根据身份证号码截取出了出生日期,怎么获取当前年龄,精确到月、日? 10

 我来答
haodemumu168
推荐于2017-11-25 · TA获得超过299个赞
知道小有建树答主
回答量:479
采纳率:100%
帮助的人:283万
展开全部

具体代码就不写了

思路如下

  1. 身份证18位 从多少位是年月日来着?大概是第7--15是年月日 substring()方法

  2. 获取当前年与日

  3. 两个日期转化为毫秒相减,相减后的毫秒转化为天数
    给个小例子

  4. public static void main(String[] args) {
    Calendar nowDate=Calendar.getInstance(),oldDate=Calendar.getInstance();
    nowDate.setTime(new Date());//设置为当前系统时间 
    oldDate.set(1990, 5, 19);//设置为1990年(6)月29日
    long timeNow=nowDate.getTimeInMillis();
    long timeOld=oldDate.getTimeInMillis();
    long 相隔天数=(timeNow-timeOld)/(1000*60*60*24);//化为天
    System.out.println("相隔"+相隔天数+"天");
追问
select cast(substring(IdentityCard,7,8) as datetime)  from checkwork_person
我这样取出了出生日期,
怎样判断月、日是否超过当前日期的月、日,如果没有超过,年龄不增加一岁,超过了才增加一岁,求sql语句
追答
这个追求的有点精确了,大致算了我们按照年份即可。比如你是88年12月的 我们算到今年13年1月就算等于13年12月 
精确算也是那样 取出月日 然后与当前月日比较啊,小于当前就是没到,大于当前就是过了
wanluo007
2013-05-24 · TA获得超过1123个赞
知道小有建树答主
回答量:836
采纳率:0%
帮助的人:775万
展开全部
了解到身份证编号的规则,其中8位表示出生年份以及月日,然后与当前系统时间进行日期比较。
利用sql自带的日期函数,就可以了。相信你肯定很快就能搞定的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
库梦菲0il
2013-05-24 · TA获得超过2445个赞
知道小有建树答主
回答量:2261
采纳率:0%
帮助的人:779万
展开全部
18位身份证 前6位是区号地区第7~14位就是出生年月日 XXXX年XX月XX日
SQL是什么
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
冰姐也爱美
2013-05-24
知道答主
回答量:9
采纳率:0%
帮助的人:1.3万
展开全部
身份证号上有啊
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式