我正在尝试使用Datediff函数给我一些用户的年限,但这比我想象的要复杂。
SELECT DATEDIFF( DD,'1963-07-22','2016-07-23')
这将给我 19360 天我认为这是因为2016年有一个闰年,这很好。
我想做的是获取年而不是日期。
如果我将间隔从DD更改为YY(YYYY),则只计算年份。
答案 0 :(得分:2)
根据我的经验,它最好使用两个日期之间的天数,然后将该数量除以365.25确切,然后四舍五入到几年。这将为您提供我认为最精确的年龄。
答案 1 :(得分:1)
计算某人年龄的正确答案,或两个日期之间截断年份的差异是
year(@today)-year(@birthDate)+floor((month(@today)-month(@birthdate)+floor((day(@today)-day(@birthdate))/31))/12);
无论闰年如何,这都会有效。并纠正该人是否出生在同一个月的晚月甚至更晚的一天。这也会忽略小时和分钟,就像计算某人的年龄时一样。
答案 2 :(得分:0)
在 DateDiff 中使用“yyyy”时,仅使用日期的年份部分来计算差异。月和日被省略。这会在一年内产生有时正确有时不正确的结果。
尝试改用这个。
SELECT Int((#2016-07-23#-#1963-07-22#)/365.25);