1

可能重复:
如何在 T-SQL 中用年、月和日计算年龄

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

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

4

1 回答 1

2

不确定它是否 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)'
于 2012-06-26T14:40:09.437 回答