1

重複の可能性:
T-SQL で年齢を年、月、日で計算する方法

年-月-日である特定の日付の年齢を完全に計算するアプリケーションがあります。SQL Server 2005 でこれを計算する簡単な方法はありますか。実際、私はこのための関数を作成しましたが、それは非常に複雑です。私が知らないSQLサーバーに簡単な方法や機能があることを知りたいだけですか?

申請者の特定の日付の正確な年齢を計算するための要件は非常に簡単です。

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 に答える