我能够创建一个INSERT触发器,从一个表中获取出生日期并完美转换为等效表
SELECT @DateOfBirth = CAST(INSERTED.DOBIRTH AS DATETIME)
FROM INSERTED
但是现在,我正在写一个UPDATE触发器,我想更新ORIGINAL表;如何将该出生日期转换为7位整数值?
答案 0 :(得分:0)
我不知道7位整数是什么。您可以使用以下方法将其转换为整数:
select convert(int, format(dob, 'yyyyMMdd'))
或者,如果您愿意:
select year(dob) * 10000 + month(dob) * 100 + day(dob)
答案 1 :(得分:0)
7位数日期格式为YYYYDDD,即年份的年份和日期(1-365 [6])。 这是一种方法:
SELECT CAST(YEAR(@DateOfBirth) AS varchar) +
RIGHT('000' +
CAST(DATEDIFF(DAY, CAST(YEAR(@DateOfBirth) AS varchar) + '-01-01', @DateOfBirth)+1 AS varchar)
, 3)
我将年份作为日期的一部分,并连接自年初以来的天数。在 100 之前的几天里,我还用左侧填充了0。
所以 2017-01-01 成为 2017001 而 2017-12-31 成为 2017365 。