SQL由身份证号计算出生日期和年龄
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL由身份证号计算出生日期和年龄相关的知识,希望对你有一定的参考价值。
这是在一个表中,我想输入ID(身份证号)后,后面的列明birth(出生日期),AGE(年龄)会直接计算结果,语句该怎么写,写在哪个地方,是写在默认值那么?
select SUBSTRING (id, 7, 4) + '-' + SUBSTRING (id, 11, 2) + '-' + SUBSTRING (id, 13, 2) from ‘员工信息表’
这句话要加在哪里?
怎么加,加在哪个地方?
加在默认值那?
本人初学者,不太会
建表或修改表时,加在字段类型后面
追问这个地方不能加这个啊
你用的什么数据库?
有些数据库支持这个功能,有些数据库不支持
SQL2005
参考技术C 这个需要用触发器,你稍等,我写一个追问不能在列属性中直接设计么
追答--创建表create table [员工信息表]
(name varchar(10)
,sex char(4)
,id varchar(18)
,birth datetime
,age char(2))
--创建触发器
CREATE TRIGGER tgr_员工信息表_1 ON [员工信息表]
for Insert, Update
AS
BEGIN
declare @birth datetime,@id varchar(18);
select @id=id,@birth=convert(datetime,substring(id,7,8)) from inserted;
update [员工信息表]
set birth=@birth,
age=convert(varchar,datediff(year,@birth,getdate()))
where id=@id;
END
--插入数据
insert into [员工信息表] (name,sex,id) values ('张三','男','xxxxxx19800101xxxx');
结果如下:
SQL Server里只能通过触发器,不能通过设置列属性的方式实现。
以上是关于SQL由身份证号计算出生日期和年龄的主要内容,如果未能解决你的问题,请参考以下文章
如何在数据库中利用sql从18位身份证号中截取出生日期,身份证号在reader表中