SQL Server 2008用SQL语句写出设置出生日期与身份证号之间的约束。
发布网友
发布时间:2022-04-24 20:34
我来回答
共2个回答
热心网友
时间:2023-08-06 01:32
--没用过2008,出生日期和身份证号对比如下:
declare @m varchar(2),@d varchar(2),@bir datetime,@sfz varchar(18)
set @bir = (select birthday from tabname) --从表中取出生日时间
set @sfz = (select sfzh from tabname) --从表中取身份证号
--取月份
set @m = cast(month(@bir) as varchar(2))
if len(@m) = 1
begin
set @m = '0'+@m
end
--取天
set @d = cast(day(@bir) as varchar(2))
if len(@d) = 1
begin
set @d = '0'+@d
end
--取身份证中的出生日期和生日对比。
if substring(@sfzh,7,8) <> cast(year(@bir) as varchar(4)) + @m + @d
begin
热心网友
时间:2023-08-06 01:33
假设出生日期字段是birth,类型是datetime;身份证号字段是IDnumber,类型是varchar
添加约束的sql语句:
alter table iden
add constraint constr1 check (substring(IDnumber,7,8)=CONVERT(varchar(20),birth,112))