メインコンテンツまでスキップ

days_diff

days_diff

説明

2つの日付式 (expr1expr2) の日の差を日単位で返します。

days_diff と datediff の違い:

関数

動作

days_diff

計算は秒単位まで正確で最も近い整数に切り捨てられます。

'2020-12-25 23:00:00' と '2020-12-24 23:00:01' の days_diff は 0 です。

datediff

計算は日単位まで正確です。

'2020-12-25 23:00:00' と '2020-12-24 23:00:01' の datediff は 1 です。

構文

BIGINT days_diff(DATETIME expr1,DATETIME expr2);

パラメータ

  • expr1: 終了時刻。DATETIME もしくは DATE 型である必要があります。
  • expr2: 開始時刻。DATETIME もしくは DATE 型である必要があります。

返り値

BIGINT 値を返します。

日付が存在しない場合(例: 2022-02-29)は NULL を返します。days_diff() は、時刻、分、秒の部分も計算に含めます。差が1日未満の場合、0 を返します。

select days_diff('2010-11-30 23:00:00', '2010-11-29 23:00:00')
+---------------------------------------------------------+
| days_diff('2010-11-30 23:00:00', '2010-11-29 23:00:00') |
+---------------------------------------------------------+
| 1 |
+---------------------------------------------------------+

select days_diff('2010-11-30 23:00:00', '2010-11-29 23:10:00')
+---------------------------------------------------------+
| days_diff('2010-11-30 23:00:00', '2010-11-29 23:10:00') |
+---------------------------------------------------------+
| 0 |
+---------------------------------------------------------+