如何用Excel提取身份证号码里面的出生日期?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何用Excel提取身份证号码里面的出生日期?相关的知识,希望对你有一定的参考价值。
参考技术A一、方法展示
C2单元格输入公式:=--TEXT(MID(B2,7,8),"0-00-00"),向下复制填充。一次性提取所有身份证号码对应的出生日期。
二、公式解释:
(1)先看MID函数:MID(B2,7,8)的意思就是从B2单元格的第7位开始截取,截取的字符长度是8位,得到的计算结果就是"19761204"。
(2)接下来用TEXT函数,将MID函数得到的字符串变成日期的模样,TEXT(MID(B2,7,8),"0-00-00")将文本字符串"19761204"从右侧的第二位和第四位之间各加上一个短横线,结果变成"1976-12-04"。
(3)经过text函数乔装打扮,文本字符串"19761204"就有了日期的样子了,但是这样的结果仅仅是掩人耳目,还不是真正的日期格式。Excel中凡是经过TEXT、MID、LEFT、RIGHT等函数计算后得出的数值是文本格式,一般情况下,不能参与后续的计算处理。
sql中,根据身份证号码截取出了出生日期,怎么获取当前年龄,精确到月、日?
具体代码就不写了
思路如下
身份证18位 从多少位是年月日来着?大概是第7--15是年月日 substring()方法
获取当前年与日
两个日期转化为毫秒相减,相减后的毫秒转化为天数
给个小例子
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月
精确算也是那样 取出月日 然后与当前月日比较啊,小于当前就是没到,大于当前就是过了
利用sql自带的日期函数,就可以了。相信你肯定很快就能搞定的。 参考技术B 18位身份证 前6位是区号地区第7~14位就是出生年月日 XXXX年XX月XX日
SQL是什么 参考技术C 身份证号上有啊
以上是关于如何用Excel提取身份证号码里面的出生日期?的主要内容,如果未能解决你的问题,请参考以下文章