SQL-92/99 Oracle Db2 SQL Server MySQL PostgreSQL Access
SQL Server/ Access/
DATEDIFF ( 日付の要素, 日付1, 日付2 )
MySQL/
DATEDIFF ( 日付1, 日付2 )
戻り値 : 日付の差
DATEDIFFは指定した日付1と日付2の差を求めるときに使用します。
このとき日付1より日付2のほうが未来であるときは正の値、日付1より日付2のほうが過去であるときは負の値を返します。
SQL Server, AccessとMySQLでは機能が異なりますので注意しましょう。
関連キーワード
SQL実行例の説明(1)
・T1_SAMPLE表のFROM_TIMEとTO_TIMEから日付の差を取得します。
-- SQL Server/ Access/
SELECT P_ID, DATEDIFF ( day, FROM_TIME, TO_TIME ) FROM T1_SAMPLE;
SQL実行の結果(1-1)
P_ID | FROM_TIME | TO_TIME |
---|---|---|
A00101 | 2006-08-01 | 2006-08-10 |
A00102 | 2006-08-11 | 2006-08-20 |
A00103 | 2006-08-21 | 2006-08-20 |
P_ID | DATEDIFF(day, FROM_TIME, TO_TIME) |
---|---|
A00101 | 9 |
A00102 | 9 |
A00103 | -1 |
SQL実行例の説明(2)
MySQLでは日の差のみ求めることができます。
T1_SAMPLE表のFROM_TIMEとTO_TIMEから日付の差を取得します。
-- MySQL/
SELECT P_ID, DATEDIFF ( FROM_TIME, TO_TIME ) FROM T1_SAMPLE;
SQL実行の結果(2-1)
P_ID | FROM_TIME | TO_TIME |
---|---|---|
A00101 | 2006-08-01 | 2006-08-10 |
A00102 | 2006-08-11 | 2006-08-20 |
A00103 | 2006-08-21 | 2006-08-20 |
P_ID | DATEDIFF(FROM_TIME, TO_TIME) |
---|---|
A00101 | 9 |
A00102 | 9 |
A00103 | -1 |