sql 根据身份证号获取出生日期并转成对应格式

 

sql server

 

查询判断身份证号是18位的

select    SUBSTRING(SUBSTRING(IDCard,7,8),1,4)+'-'+SUBSTRING(SUBSTRING(IDCard,7,8),5,2)+'-'+SUBSTRING(SUBSTRING(IDCard,7,8),7,2) fromwhere    Birthday is null and LEN(IDCard)=18

 

修改

update 表set Birthday=SUBSTRING(SUBSTRING(IDCard,7,8),1,4)+'-'+SUBSTRING(SUBSTRING(IDCard,7,8),5,2)+'-'+SUBSTRING(SUBSTRING(IDCard,7,8),7,2) where   Birthday is null and LEN(IDCard)=18
 

 

oracle

SELECT (SUBSTR(IdNumStr,7,8 ))  FROM DUAL;

 

输出是年月日字符串。再转换为对应需要的时间格式,例YYYY-MM-DD

SELECT to_char(to_date((SUBSTR(IdNumStr,7,8 )),'yyyy-mm-dd'),'yyyy-mm-dd')  FROM DUAL;

 

create function     U_GET_BIRTH(IDNUM in varchar2) return varchar2 as
begin
    --根据身份证号取得对应的出生年月日,并转换为对应的日期格式
    return to_char(to_date((SUBSTR(IDNUM ,7,8 )),'yyyy-mm-dd'),'yyyy-mm-dd');
end;

 

posted @   qingjiawen  阅读(1446)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
历史上的今天:
2021-11-09 顺序表的插入
2021-11-09 顺序表的构造
2021-11-09 C# ContentType: "application/json" 请求方式传json
点击右上角即可分享
微信分享提示