【达梦】通过身份证号查询年龄
现在的身份证应该没有不是18位的吧。。。。
select substring(identity_no ,7,8), (substring(now(),1,4)-substring(identity_no ,7,4)) - ( case when date_format(now(),'%m%d') - substring(identity_no,11,4) > 0 then 0 else 1 end ) as age from member limit 5;
解释一下:
substring(now(),1,4)-substring(identity_no ,7,4)):根据年份获取一个年份差,
case when date_format(now(),'%m%d') - substring(identity_no,11,4) > 0 then 0 else 1 end : 通过当前月日和 身份证的月日相减,如果大于0,说明这个人在今年已经过了生日,所以不用减掉1岁。反之当前日期小于身份证上的日期,表明还没有过生日,年龄就需要减掉1岁。
分类:
数据库 / 国产数据库-达梦
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南