首页 文章

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

提问于
浏览
1

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

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

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

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)'
    

相关问题