Dav*_*lle 1 sql sql-server-2005 date
可能重复:
如何使用年,月和日计算T-SQL中的年龄
这似乎很简单,但它似乎对我不起作用.我想根据SQL中的两个日期计算某人的年龄.
我做了DATEDIFF(年,出生日期,参考日期)并且它并不总是给我正确的年龄.
例如
DATEDIFF(year,'1981-07-05',2011-07-01')
Run Code Online (Sandbox Code Playgroud)
给30,虽然它应该仍然是29.有没有办法做到这一点?
谢谢,
试试这个...
SELECT CASE WHEN
(DATEADD(year,DATEDIFF(year, @datestart ,@dateend) , @datestart) > @dateend)
THEN DATEDIFF(year, @datestart ,@dateend) -1
ELSE DATEDIFF(year, @datestart ,@dateend)
END
Run Code Online (Sandbox Code Playgroud)
它只是比较年份差异,如果它更大,则减去一年,否则返回值.