<问题> 根据身份证号统计年龄(18位)
Oracle
<思路>
(1)Substr()函数在Oracle使用中表示被劫取的字符串表达式,截取字符串的内容。
(2)To_date()函数可以转换不同格式的日期,通过使用to_date函数可以将字符串类型的日期转换成date格式。
(3)Months_between()函数反悔两个日期之间的月份数。
(4)Floor()函数,作用是向下取整数。
(5)TRUNC函数返回以指定元素格式截去一部分的日期值,或者直接对数字格式的数据进行截断.(此处亦可不加,加上则时间精确到秒)
利用以上函数的性质,首先根据substr函数获取到身份证号第7位开始的8个数,即出生年月日;后加一个to_date函数转换日期格式为yyyymmdd;后利用Months_between()函数用系统时间sysdate-todate即可获得月数时间差;再用月数时间差除以12个月得到岁数,因为除出来的结果存在小数点,则最后用floor函数向下取整(例如:目前3月份,但是生日是四月份的就不能给他满一年算)文章来源:https://www.toymoban.com/news/detail-512256.html
<解>文章来源地址https://www.toymoban.com/news/detail-512256.html
SELECT "id" ,"idc
到了这里,关于数据库SQL函数 根据身份证号/出生年月 精确计算年龄(Oracle/MySQL)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!