- 此问题在此处已有答案**:
(39个答案)
3天前关闭。
我试图计算一个人在过去某个特定日期的年龄;在本例中,我们就说"02 - 01 - 2020"。
我有这样的东西:
SELECT person.name,
CASE
WHEN DATEADD(YEAR, DATEDIFF(YEAR, person.birthdate, '02-01-2020'), person.birthdate) < '02-01-2020'
THEN DATEDIFF(YEAR, person.birthdate, '02-01-2020')-1
ELSE DATEDIFF(YEAR, person.birthdate, '02-01-2020')
END AS calculated_age,
FROM PersonTable
[...]
我不认为这适用于"02 - 01 - 2020"之后的潜在生日,我想知道是否有更好的方法来做到这一点?
3条答案
按热度按时间fumotvh31#
我在当前的项目中使用这种方法
zmeyuzjn2#
我会得到两个日期之间的天数差,然后将这个数字除以365. 25,考虑到闰年。
如果您在其他计算中使用这些结果,则由于年份的小数部分,这可能会导致一些不准确。
xpcnnkqh3#
下面是另一种获得所需结果的方法: