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ビット整数です。
week、day、hour、min、sec、msec 単位はミリ秒の差を該当単位で割って計算します。year と mon 単位はうるう年の誤差を避けるためにカレンダーベースで計算します。
START_DATE または END_DATE が null であるか日付型でない場合は null を返します。
エラーコード
90630- 引数の数が3個でない場合に発生します。
90631- UNIT の値が無効な場合に発生します。
fieldパラメーターに無効な単位が含まれます。
使用例
これらの使用例で参照する WEB_APACHE_SAMPLE テーブルを準備するには、クエリ実習用データを参照してください。
-
アクセスログの時刻から現在までの差を時間単位で計算します。
table limit=5 WEB_APACHE_SAMPLE | eval diff_hour = datediff(_time, now(), "hour") | fields _time, diff_hour -
アクセスログの時刻から現在までの差を複数の単位で計算します。
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 -
null入力json "{}" | eval result = datediff(null, now(), "day") | # result: null
互換性
datediff() 関数はSonar 4.0以前のバージョンから提供されています。