DATETIME_DIFF

2 つの日付の間にあるパーツの境界の数を返します。

使用例

DATETIME_DIFF(注文日, 発送日, DAY)

構文

DATETIME_DIFF(date_expression, date_expression, part)

パラメータ

date_expression - [日付] または [日付と時刻] フィールドまたは式。最初の日付式が 2 番目の日付式よりも前にある場合、結果は正以外の値になります。計算によって得られたタイプがオーバーフローする場合、DATETIME_DIFF によりエラーがスローされます。たとえば、2 つの日付の値のマイクロ秒単位の差異が正の値をオーバーフローする場合などです。

part - 返される時刻パーツ。DATETIME_DIFF では、次のパーツがサポートされています。

  • MICROSECOND: [日付と時刻] フィールドまたは式で使用できます。
  • MILLISECOND: [日付と時刻] フィールドまたは式で使用できます。
  • SECOND: [日付と時刻] フィールドまたは式で使用できます。
  • MINUTE: [日付と時刻] フィールドまたは式で使用できます。
  • HOUR: [日付と時刻] フィールドまたは式で使用できます。
  • DAY
  • WEEK: この日付パーツは日曜日から始まります。
  • ISOWEEK: ISO 8601 形式の週の境界を使用します。ISO 週は月曜日から始まります。
  • MONTH
  • QUARTER
  • YEAR
  • ISOYEAR: ISO 8601 週番号が付けられた年の境界を使用します。ISO 年の境界は、対応するグレゴリオ暦年に木曜日が属している最初の週の月曜日です。

戻り値のデータタイプ

Number (integer)

下記の 2 番目と 3 番目の例は、24 時間離れている 2 つの日付値の DATETIME_DIFF の結果を示しています。DATETIME_DIFF は、これらの日付値の範囲内でパーツの境界の数をカウントするため、パーツ WEEK が指定された DATETIME_DIFF は 1 を返します。各 WEEK は日曜日から始まるため、2017-10-14 00:00:00 土曜日と 2017-10-15 00:00:00 日曜日の間にはパーツの境界が 1 つあります。

数式 結果
DATETIME_DIFF(
   DATETIME "2010-07-07 10:20:00", DATETIME "2008-12-25 15:30:00", DAY
)
559
DATETIME_DIFF(
    DATETIME "2017-10-15 00:00:00", DATETIME "2017-10-14 00:00:00", DAY
)  

1

DATETIME_DIFF(
    DATETIME "2017-10-15 00:00:00", DATETIME "2017-10-14 00:00:00", WEEK
)
1

 

次の例は、異なる年の 2 つの日付に対する DATETIME_DIFF の結果を示しています。日付パーツ YEAR が指定された DATETIME_DIFF は、2 つの日付間のグレゴリオ暦年の境界の数をカウントするため、3 を返します。2 番目の日付は ISO 基準の 2015 年に属しているため、日付パーツ ISOYEAR が指定された DATETIME_DIFF は 2 を返します。2015 年の最初の木曜日が 2015 年 1 月 1 日であったため、ISO 基準の 2015 年は 2014 年 12 月 29 日月曜日から始まります。

数式 結果
DATETIME_DIFF(DATETIME '2017-12-30 00:00:00', DATETIME '2014-12-30 00:00:00', YEAR)
3
DATETIME_DIFF(DATETIME '2017-12-30 00:00:00', DATETIME '2014-12-30 00:00:00', ISOYEAR)

2

 

次の例は、連続する 2 つの日付に対する DATETIME_DIFF の結果を示しています。最初の日付は月曜日で、2 番目の日付は日曜日になります。ISO 週は月曜日から始まるので、日付パーツ ISOWEEK が指定された DATETIME_DIFF も 1 を返します。

数式 結果
DATETIME_DIFF(DATE '2017-12-18', DATE '2017-12-17', WEEK)
0
DATETIME_DIFF(DATE '2017-12-18', DATE'2017-12-17', ISOWEEK)
1

この関数は、互換モードの日付タイプでは使用できません。

関連資料

この情報は役に立ちましたか?
改善できる点がありましたらお聞かせください。

さらにサポートが必要な場合

問題を迅速に解決できるよう、ログインして追加のサポート オプションをご利用ください。