DATEDIFF 関数 - 日付の差を求める -
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 文は、「T_23_1」表の「FROM_TIME」列と「TO_TIME」列から日付の差を取得します。
-- SQL Server, Access
SELECT P_ID, FROM_TIME, TO_TIME, DATEDIFF(day, FROM_TIME, TO_TIME) FROM T_23_1;
P_ID | FROM_TIME | TO_TIME | DATEDIFF(day, FROM_TIME, TO_TIME) |
---|---|---|---|
A00101 | 2006-08-01 18:30:00 | 2006-08-10 00:00:00 | 9 |
A00102 | 2006-08-11 10:30:00 | 2006-08-20 00:00:00 | 9 |
A00103 | 2006-08-21 10:30:00 | 2006-08-20 00:00:00 | -1 |
MySQL では、DATEDIFF 関数を使用して、日の差のみ求めることができます。 なお、MySQL でDATEDIFF 関数を使用する場合には、バージョン 4.1 以降が必要です。
-- 【説明】
-- 次の SQL 文は、「T_23_1」表の「FROM_TIME」列と「TO_TIME」列から日付の差を取得します。
-- MySQL
SELECT P_ID, FROM_TIME, TO_TIME, DATEDIFF(FROM_TIME, TO_TIME) FROM T_23_1;
P_ID | FROM_TIME | TO_TIME | DATEDIFF(FROM_TIME, TO_TIME) |
---|---|---|---|
A00101 | 2006-08-01 18:30:00 | 2006-08-10 00:00:00 | 9 |
A00102 | 2006-08-11 10:30:00 | 2006-08-20 00:00:00 | 9 |
A00103 | 2006-08-21 10:30:00 | 2006-08-20 00:00:00 | -1 |
参考表
T_23_1 |
|