大学网站建设定制网站建设,建设通账号,普通的旧房装修价格,它有什么特点1、需求#xff1a;数据库中有身份证号码#xff0c;也有年龄字段#xff0c;但是年龄字段不会自动更新#xff0c;现在需要返回最新的年龄数据。
2、思路#xff1a;获取当前年份#xff0c;截取省份证中的年龄部分数据#xff0c;再进行相减即可#xff1b;
3、具体…1、需求数据库中有身份证号码也有年龄字段但是年龄字段不会自动更新现在需要返回最新的年龄数据。
2、思路获取当前年份截取省份证中的年龄部分数据再进行相减即可
3、具体实现 ①获取当前年份这个SQL查询的有很多 -- 查询年份
select extract(year from now()) AS Year;
select to_char(now(),yyyy) AS Year; -- 其中 now()也可以改写成 current_date 或 SELECT now()::timestamp ; ②截取省份证中的年龄部分数据一般身份证都是18位现在就以18位的为准其他证件位数的计算方法也类型 -- 截取函数 IdNumber 为身份证号码 为String;
SUBSTRING(IdNumber,7,4); ③进行相减这个地方需要注意类型一致所以需要对数据进行一个类型转换即可如int2、int4等 -- 计算
select extract(year from now())- int2(SUBSTRING(身份证号,7,4)) AS age
select id, (select extract(year from now())- int2(SUBSTRING(身份证号,7,4)) ) age FROM 表名;