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) from 表 where    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;
相关推荐
sdaxue.com1 小时前
帝国CMS:如何去掉帝国CMS登录界面的认证码登录
数据库·github·网站·帝国cms·认证码
o(╥﹏╥)2 小时前
linux(ubuntu )卡死怎么强制重启
linux·数据库·ubuntu·系统安全
阿里嘎多学长2 小时前
docker怎么部署高斯数据库
运维·数据库·docker·容器
Yuan_o_2 小时前
Linux 基本使用和程序部署
java·linux·运维·服务器·数据库·后端
Sunyanhui12 小时前
牛客网 SQL36查找后排序
数据库·sql·mysql
老王笔记2 小时前
MHA binlog server
数据库·mysql
lovelin+v175030409663 小时前
安全性升级:API接口在零信任架构下的安全防护策略
大数据·数据库·人工智能·爬虫·数据分析
DT辰白4 小时前
基于Redis的网关鉴权方案与性能优化
数据库·redis·缓存
2401_871213304 小时前
mysql高阶语句
数据库·mysql