datediff()

2つの日付の差を指定した時間単位で計算して返します。

構文

datediff(START_DATE, END_DATE, UNIT)

パラメーター

START_DATE
開始日付を返す式です。
END_DATE
終了日付を返す式です。
UNIT
差を計算する時間単位を表す文字列です。サポートする単位は次のとおりです。
単位説明
year
mon
week
day
hour
min
sec
msecミリ秒

説明

datediff() 関数は、END_DATE から START_DATE を引いた差を指定した単位で計算して返します。返り値の型は64ビット整数です。

weekdayhourminsecmsec 単位はミリ秒の差を該当単位で割って計算します。yearmon 単位はうるう年の誤差を避けるためにカレンダーベースで計算します。

START_DATE または END_DATE が null であるか日付型でない場合は null を返します。

エラーコード

90630
引数の数が3個でない場合に発生します。
90631
UNIT の値が無効な場合に発生します。field パラメーターに無効な単位が含まれます。

使用例

これらの使用例で参照する WEB_APACHE_SAMPLE テーブルを準備するには、クエリ実習用データを参照してください。

  1. アクセスログの時刻から現在までの差を時間単位で計算します。

    table limit=5 WEB_APACHE_SAMPLE | eval diff_hour = datediff(_time, now(), "hour")
    | fields _time, diff_hour
    
  2. アクセスログの時刻から現在までの差を複数の単位で計算します。

    table limit=5 WEB_APACHE_SAMPLE
    | eval diff_day = datediff(_time, now(), "day"),
           diff_hour = datediff(_time, now(), "hour"),
           diff_min = datediff(_time, now(), "min")
    | fields _time, diff_day, diff_hour, diff_min
    
  3. null 入力

    json "{}" | eval result = datediff(null, now(), "day")
    | # result: null
    

互換性

datediff() 関数はSonar 4.0以前のバージョンから提供されています。