如何计算年,月,日两个日期之间的约会? [重复]

可能重复:如何使用年,月和日计算T-SQL中的年龄

我有一个应用程序,它完全计算特定日期的年龄,即几年 - 几天 . 在sql server 2005中有没有简单的方法来计算它 . 实际上我已经为此创建了一个功能,但这非常复杂 . 我只是想知道在我不知道的sql server中是否有任何简单的方法或任何功能?

对于任何申请人,在特定日期计算确切年龄的要求非常简单 .

回答(1)

2 years ago

不确定它是否100%正确,但是这样的事情:

declare @d1 datetime, @d2 datetime, @y int, @m int, @d int
set @d1 = '2009-09-23'
set @d2 = '2012-04-23'

set @y = datediff(year, @d1, @d2) - 1
set @m = datediff(month, dateadd(year, @y, @d1), @d2) 
if dateadd(month, @m, dateadd(year, @y, @d1)) > @d2 set @m = @m - 1

set @d = datediff(day, dateadd(month, @m, dateadd(year, @y, @d1)), @d2)
print cast(@y as nvarchar) + ' year(s) ' + cast(@m as nvarchar) + ' month(s) and ' + cast(@d as nvarchar) + ' day(s)'