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_IDFROM_TIMETO_TIMEDATEDIFF(day, FROM_TIME, TO_TIME)
A001012006-08-01 18:30:002006-08-10 00:00:00 9
A001022006-08-11 10:30:002006-08-20 00:00:00 9
A001032006-08-21 10:30:002006-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_IDFROM_TIMETO_TIMEDATEDIFF(FROM_TIME, TO_TIME)
A001012006-08-01 18:30:002006-08-10 00:00:00 9
A001022006-08-11 10:30:002006-08-20 00:00:00 9
A001032006-08-21 10:30:002006-08-20 00:00:00-1

参考表

T_23_1

P_IDFROM_TIMETO_TIME
A001012006-08-01 18:30:002006-08-10 00:00:00
A001022006-08-11 10:30:002006-08-20 00:00:00
A001032006-08-21 10:30:002006-08-20 00:00:00