日付の差分を取得する方法
スポンサーリンク
T-SQL で日付の差を計算してその差分を取得するには DATEDIFF 関数を使用します。
日付の差分を日数で取得する方法(日の差分を計算)
日付の差分を日数で取得する際の書式は次の通りです。この書式では日付FROMから日付TOの日数を数字で返します。
tsql(書式) | |
1 | DATEDIFF(DAY, 日付FROM, 日付TO) |
実行可能なサンプルコードは次の通りです。
tsql(実行可能なサンプルコード) | |
1 2 3 4 5 6 7 | SELECT DATEDIFF(DAY, '2015/11/01', '2015/11/02'), -- 1 DATEDIFF(DAY, '2015/11/01', '2015/11/30'), -- 29 DATEDIFF(DAY, '2015/11/01', '2015/12/01'), -- 30 DATEDIFF(DAY, '2015/11/01', '2015/11/01'), -- 0 --同じ日付の場合は0 DATEDIFF(DAY, '2015/11/01', '2015/10/31'), -- -1 --過去に遡る場合はマイナス DATEDIFF(DAY, '2015/11/01', '2015/10/01') -- -31 --過去に遡る場合はマイナス |
日付の差分を月数で取得する方法(月の差分を計算)
日付の差分を月数で取得する際の書式は次の通りです。この書式では日付FROMから日付TOの月数を数字で返します。
tsql(書式) | |
1 | DATEDIFF(MONTH, 日付FROM, 日付TO) |
この月数の計算では、日付FROMと日付TOの日の部分は無視されます。例えば 2015/11/30 と 2015/12/01 は日数で考えると 1 日の差ですが、月の部分が 11 から 12 へ 1 増えているので、差分は 1 ヶ月と計算されます。
実際のサンプルコードは次の通りです。
tsql(実行可能なサンプルコード) | |
1 2 3 4 5 6 7 | SELECT DATEDIFF(MONTH, '2015/11/30', '2015/12/01'), -- 1 :1日でも月の部分が変わっていれば1 DATEDIFF(MONTH, '2015/11/01', '2015/12/31'), -- 1 DATEDIFF(MONTH, '2015/11/01', '2016/01/15'), -- 2 DATEDIFF(MONTH, '2015/11/01', '2015/11/30'), -- 0 :同じ月の場合は0 DATEDIFF(MONTH, '2015/11/01', '2015/10/31'), -- -1 :過去に遡る場合はマイナス DATEDIFF(MONTH, '2015/11/01', '2014/11/01') -- -12:過去に遡る場合はマイナス |
日付の差分を年数で取得する方法(年の差分を計算)
日付の差分を年数で取得する際の書式は次の通りです。この書式では日付FROMから日付TOの年数を数字で返します。
tsql(書式) | |
1 | DATEDIFF(MONTH, 日付FROM, 日付TO) |
この年数の計算では、日付FROMと日付TOの月と日の部分は無視されます。例えば 2015/12/31 と 2016/01/01 は日数で考えると 1 日の差ですが、年の部分が 2015 から 2016 へ 1 増えているので、差分は 1 年と計算されます。
実際のサンプルコードは次の通りです。
tsql(実行可能なサンプルコード) | |
1 2 3 4 5 6 7 | SELECT DATEDIFF(YEAR, '2015/12/31', '2016/01/01'), -- 1 :1日でも年の部分が変わっていれば1 DATEDIFF(YEAR, '2015/01/01', '2016/12/31'), -- 1 DATEDIFF(YEAR, '2015/11/01', '2017/05/15'), -- 2 DATEDIFF(YEAR, '2015/01/01', '2015/12/31'), -- 0 :同じ年の場合は0 DATEDIFF(YEAR, '2015/01/01', '2014/12/31'), -- -1 :過去に遡る場合はマイナス DATEDIFF(YEAR, '2015/11/01', '2000/01/01') -- -15:過去に遡る場合はマイナス |
スポンサーリンク