次の 2 つの日付の差を計算する簡単な方法はありますか。
- を含む年数で表します。年の端数; と
- うるう年を考慮しますか?
たとえば、2011 年 3 月 1 日と 2012 年 3 月 1 日の違いは 1 年です。ただし、DATEDIFF(day,..,..) を使用して 365 で除算すると、うるう年のために 1.00274 という (望ましくない) 回答が得られます。
明確にするために、年の端数も必要です (つまり、年数全体だけではありません)。たとえば、2011 年 3 月 1 日と 2012 年 3 月 3 日の差は 1.005479 (1 年 + 2/365 年) です。2011 年 3 月 1 日と 2012 年 2 月 29 日の差は 0.997268 (0 年 + 365/366 年) です。
したがって、要約すると、上記の 2 つの例の出力 (DECIMAL(7,6)) は次のようになります。
1.000000 1.005479 0.997268