根据身份证号得出年龄

update @T
set nl = case when len(ltrim(rtrim(sfz))) = 18 then cast(Year(GetDate()) as int)- cast(substring(ltrim(rtrim(sfz)),7,4) as int)
  else cast(Year(GetDate()) as int)- cast('19'+substring(ltrim(rtrim(sfz)),7,2) as int) end
 
 
 
 
#字符串格式化为日期格式
SELECT DATE_FORMAT( '19841201' , '%Y-%m-%d' )
 
# ---知道出生日期求年龄
SELECT TIMESTAMPDIFF( YEAR ,DATE_FORMAT( '19841201' , '%Y-%m-%d' ),CURDATE());
 
#截取身份证号中的年月日
SELECT SUBSTR( '152824197810116015' ,7,8);
SELECT SUBSTR( '152824781011601' ,7,6)
 
#连接字符串
SELECT CONCAT( '33' , '22' )
 
#截取身份证号中的年月日 1
SELECT  IF (LENGTH( '152824197810116015' )=18,
             SUBSTR( '152824197810116015' ,7,8),
              CONCAT( '19' ,SUBSTR( '152824197810116015' ,7,6))
                     );
#截取身份证号中的年月日 2
SELECT  IF (LENGTH( '152824781011601' )=18,
             SUBSTR( '152824781011601' ,7,8),
              CONCAT( '19' ,SUBSTR( '152824781011601' ,7,6))
                     );
#根据身份证号计算年龄
SELECT TIMESTAMPDIFF( YEAR ,
      DATE_FORMAT( IF (LENGTH( '152824781011601' )=18,
             SUBSTR( '152824781011601' ,7,8),
              CONCAT( '19' ,SUBSTR( '152824781011601' ,7,6))
                     ), '%Y-%m-%d' ),
      CURDATE());
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值