我有一张桌子,里面有一个出生日期,其中一个工作人员序列号与出生日期几乎相同,并且由于某些序列号数据与他们的出生日期不同,所以我想更新这些日期与序列号相同。
我使用这种代码
UPDATE worker
SET birthdate = MID(NIP,1,8)
where (MID(NIP,1,8)
<>concat(MID(TGLLHR,1,4),MID(TGLLHR,6,2),MID(TGLLHR,9,2)));
19961101013
,并且其出生日期为1995-11-03
,我想将其出生日期更改为与序列号相同的日期,例如1996-11-01
答案 0 :(得分:0)
您可以使用Couple或REPLACE / CONVERT方法检查生日和NIP之间的数据匹配,然后相应地更新数据。以下脚本将帮助您相应地更新数据。
注意:UPDATE是有风险的命令。请先尝试使用您的测试数据。
UPDATE worker
SET birthdate = CONVERT(LEFT(CONVERT(NIP,CHAR),8) , DATE)
WHERE REPLACE(CONVERT(birthdate, CHAR),'-','') <> LEFT(CONVERT(NIP,CHAR),8)
如您所解释的,上面的脚本将仅更新在生日和NIP值之间不匹配的记录。