Simple Log Service は、時刻関数、日付関数、日付と時刻の抽出関数、時間間隔関数、および時系列パディング関数を提供します。これらの関数を使用すると、ログ内の日付と時刻データに対して、フォーマット変換、グループ化、集約などの操作を実行できます。このトピックでは、これらの日付と時刻関数の基本的な構文について説明し、使用例を示します。
日付と時刻関数の概要
Simple Log Service は、次の日付と時刻の関数をサポートしています。
Simple Log Service のログタイムスタンプは秒単位の精度です。したがって、時刻フォーマット (format) を設定する際は、秒までのフォーマットのみを指定してください。ミリ秒とマイクロ秒は不要です。
時刻フォーマット (format) は、時刻文字列の時刻部分に対してのみ設定する必要があり、タイムゾーンなどの他のコンテンツには設定する必要はありません。
Simple Log Service の各ログには、予約フィールド
__time__が含まれています。このフィールドの値は UNIX タイムスタンプです。たとえば、1592374067 は 2020-06-17 14:07:47 を表します。Simple Log Service の分析文では、文字列をシングルクォーテーション ('') で囲む必要があります。引用符で囲まれていない文字、またはダブルクォーテーション ("") で囲まれた文字は、フィールドまたは列名として解釈されます。たとえば、
'status'は文字列 status を表し、statusまたは"status"はログフィールド status を表します。
関数タイプ | 関数名 | 構文 | 説明 | SQL サポート | SPL サポート |
日付と時刻の関数 | current_date | 現在の日付を返します。 | √ | × | |
current_time | 現在の時刻とタイムゾーンを返します。 | √ | × | ||
current_timestamp | 現在の日付、時刻、タイムゾーンを返します。 | √ | × | ||
current_timezone() | 現在のタイムゾーンを返します。 | √ | × | ||
date(x) | 日時式の日付部分を返します。 | √ | × | ||
date_format(x, format) | タイムスタンプ日時式を指定されたフォーマットに変換します。 | √ | √ | ||
date_parse(x, format) | 日付と時刻の文字列を、指定されたフォーマットのタイムスタンプ日時式に変換します。 | √ | √ | ||
from_iso8601_date(x) | ISO 8601 の日付式を日付型の式に変換します。 | √ | × | ||
from_iso8601_timestamp(x) | ISO 8601 の日時式をタイムスタンプ型の式に変換します。 | √ | × | ||
from_unixtime(x) | UNIX タイムスタンプを、タイムゾーンなしのタイムスタンプ日時式に変換します。 | √ | √ | ||
from_unixtime(x, time zone) | UNIX タイムスタンプを、タイムゾーン付きのタイムスタンプ日時式に変換します。 | √ | × | ||
from_unixtime(x, hours, minutes) | UNIX タイムスタンプを、タイムゾーン付きのタイムスタンプ日時式に変換します。ここで、hours と minutes はタイムゾーンオフセットです。 | √ | × | ||
localtime | ローカルタイムを返します。 | √ | × | ||
localtimestamp | ローカルの日付と時刻を返します。 | √ | × | ||
now() | 現在の日付と時刻を返します。 now 関数は current_timestamp 関数と同等です。 | √ | × | ||
to_iso8601(x) | 日付またはタイムスタンプ日時式を ISO 8601 フォーマットに変換します。 | √ | × | ||
to_unixtime(x) | タイムスタンプ日時式を UNIX タイムスタンプに変換します。 | √ | √ | ||
current_unixtimestamp() | システムの現在の Unix タイムスタンプを返します。 | × | √ | ||
日付と時刻の抽出関数 | day(x) | 日時式から月の日を抽出します。 day 関数は day_of_month 関数と同等です。 | √ | × | |
day_of_month(x) | 日時式から月の日を抽出します。 day_of_month 関数は day 関数と同等です。 | √ | × | ||
day_of_week(x) | 日時式から曜日を返します。 day_of_week 関数は dow 関数と同等です。 | √ | √ | ||
day_of_year(x) | 日時式から年の日を抽出します。 day_of_year 関数は doy 関数と同等です。 | √ | √ | ||
dow(x) | 日時式から曜日を返します。 dow 関数は day_of_week 関数と同等です。 | √ | √ | ||
doy(x) | 日時式から年の日を抽出します。 doy 関数は day_of_year 関数と同等です。 | √ | √ | ||
extract(field from x) | 指定された field を使用して、日時式から日付または時刻の部分を取得します。 | √ | × | ||
hour(x) | 日時式から時 (0-23) を抽出します。 | √ | √ | ||
minute(x) | 日時式から時の分を抽出します。 | √ | √ | ||
month(x) | 日時式から年の月を抽出します。 | √ | √ | ||
quarter(x) | 指定された日付の年の四半期を返します。 | √ | √ | ||
second(x) | 日時式から分の秒を抽出します。 | √ | √ | ||
timezone_hour(x) | タイムゾーンオフセットを時間単位で提供します。 | √ | × | ||
timezone_minute(x) | タイムゾーンオフセットを分単位で計算します。 | √ | × | ||
week(x) | 指定された日付の年の週を返します。 week 関数は week_of_year 関数と同等です。 | √ | × | ||
week_of_year(x) | 指定された日付の年の週を返します。 week_of_year 関数は week 関数と同等です。 | √ | × | ||
year(x) | 指定された日付から年を抽出します。 | √ | √ | ||
year_of_week(x) | 指定された日付の ISO 週の年を返します。 year_of_week 関数は yow 関数と同等です。 | √ | √ | ||
yow(x) | 指定された日付の ISO 週の年を返します。 yow 関数は year_of_week 関数と同等です。 | √ | √ | ||
時間間隔関数 | date_trunc(unit, x) | 日時式を、ミリ秒、秒、分、時、日、月、年などの指定された時間単位に切り捨てます。 | √ | × | |
date_add(unit, N, x) | x に N 時間単位を追加します。 | √ | √ | ||
date_diff(unit, x, y) | 2 つの時刻式 x と y の差を、指定された時間単位で返します。 | √ | √ | ||
時系列パディング関数 | time_series(x, window, format, padding_data) | クエリタイムウィンドウ内の欠損データをパディングします。 | √ | × |
日付と時刻の関数
current_date 関数
current_date 関数は、YYYY-MM-DD フォーマットで現在の日付を返します。
構文
current_date戻り値の型
データ型。
例
前日のログをクエリします。
クエリ文 (デバッグ)
* | SELECT * FROM log WHERE __time__ < to_unixtime(current_date) AND __time__ > to_unixtime(date_add('day', -1, current_date))クエリと分析結果

current_time 関数
current_time 関数は、HH:MM:SS.Ms Time_zone フォーマットで現在の時刻とタイムゾーンを返します。
構文
current_time戻り値の型
時刻データ型を指定します。
例
現在の時刻とタイムゾーンをクエリします。
クエリ文 (デバッグ)
* | select current_timeクエリと分析結果

current_timestamp 関数
current_timestamp 関数は、YYYY-MM-DD HH:MM:SS.Ms Time_zone フォーマットで現在の日付、時刻、タイムゾーンを返します。
構文
current_timestamp戻り値の型
timestamp
例
前日のログをクエリします。
クエリ文 (デバッグ)
* | SELECT * FROM log WHERE __time__ < to_unixtime(current_timestamp) AND __time__ > to_unixtime(date_add('day', -1, current_timestamp))クエリと分析結果

current_timezone 関数
current_timezone 関数は、現在のタイムゾーンを返します。
構文
current_timezone()戻り値の型
varchar
例
現在のタイムゾーンをクエリします。
クエリ文 (デバッグ)
* | select current_timezone()クエリと分析結果

date 関数
date 関数は、日時式から日付部分を抽出します。date 関数は cast(x as date) と同等です。詳細については、「型変換関数」をご参照ください。
構文
date(x)パラメーター
パラメーター | 説明 |
x | 値は date 型または timestamp 型です。 |
戻り値の型
データ型は Date です。
例
current_timestamp 関数を使用して現在の日付と時刻を取得します。次に、date 関数を使用して日付部分を抽出します。
クエリ文 (デバッグ)
* | SELECT current_timestamp, date(current_timestamp)クエリと分析結果

date_format 関数
date_format 関数は、タイムスタンプ日時式を指定されたフォーマットに変換します。
構文
date_format(x, format)パラメーター
パラメーター | 説明 |
x | タイムスタンプ日時式。 |
format | 日時式の変換フォーマット。詳細については、「フォーマット指定子」をご参照ください。 |
戻り値の型
varchar データ型。
例
各リクエストステータスの NGINX リクエスト数を計算し、結果を時系列で表示します。まず、date_trunc 関数を使用してログ時刻を分単位に揃えます。次に、date_format 関数を使用して時刻を %H:%i フォーマットに変換します。最後に、分ごとの各ステータスコードのリクエスト数を計算し、クエリと分析結果をフローチャートで表示します。
クエリ文 (デバッグ)
* | SELECT date_format(date_trunc('minute', __time__), '%H:%i') AS time, COUNT(1) AS count, status GROUP BY time, status ORDER BY timeクエリと分析結果

date_parse 関数
date_parse 関数は、日付と時刻の文字列を、指定されたフォーマットのタイムスタンプ日時式に変換します。
構文
date_parse(x, format)パラメーター
パラメーター | 説明 |
x | 日付と時刻の文字列。 |
format | 日時式の変換フォーマット。詳細については、「フォーマット指定子」をご参照ください。 |
戻り値の型
タイムスタンプの型。
例
StartTime フィールドと EndTime フィールドの値をタイムスタンプデータ型に変換し、それらの間の時間差を計算します。
クエリ文
*| SELECT date_parse(StartTime, '%Y-%m-%d %H:%i') AS "StartTime", date_parse(EndTime, '%Y-%m-%d %H:%i') AS "EndTime", date_diff('hour', StartTime, EndTime) AS "Time difference (hours)"クエリと分析結果

from_iso8601_date 関数
from_iso8601_date 関数は、ISO 8601 の日付式を YYYY-MM-DD フォーマットの日付データ型に変換します。
構文
from_iso8601_date(x)パラメーター
パラメーター | 説明 |
x | ISO 8601 の日付式。 |
戻り値の型
日付データ型。
例
time フィールドの値を日付データ型に変換します。
フィールドの例
time:2020-05-03クエリ文
* | select from_iso8601_date(time)クエリと分析結果

from_iso8601_timestamp 関数
from_iso8601_timestamp 関数は、ISO 8601 の日時式を YYYY-MM-DD HH:MM:SS.Ms Time_zone フォーマットのタイムスタンプデータ型に変換します。
構文
from_iso8601_timestamp(x)パラメーター
パラメーター | 説明 |
x | ISO 8601 の日時式。 |
戻り値の型
タイムスタンプデータ型。
例
time フィールドの値をタイムスタンプデータ型に変換します。
フィールドの例
time:2020-05-03T17:30:08クエリ文
* | select from_iso8601_timestamp(time)クエリと分析結果

from_unixtime 関数
from_unixtime 関数は、UNIX タイムスタンプをタイムスタンプに変換します。フォーマットは YYYY-MM-DD HH:MM:SS.Ms または YYYY-MM-DD HH:MM:SS.Ms Time_zone です。
構文
日時式からタイムゾーンなしのタイムスタンプを返します。
from_unixtime(x)日時式をタイムゾーン付きのタイムスタンプに変換します
from_unixtime(x,time zone)値を `timestamp with time zone` 日時式に変換します。ここで、hours と minutes はタイムゾーンオフセットを指定します。
from_unixtime(x, hours, minutes)
パラメーター
パラメーター | 説明 |
x | パラメーター値は UNIX タイムスタンプです。 |
time zone | タイムゾーン。例:Asia/shanghai。 |
hours | タイムゾーンオフセットの時間。例:+07 または -09。 |
minutes | タイムゾーンオフセットの分。例:+30 または -45。 |
戻り値の型
timestamp
例
time フィールドの値をタイムゾーン付きのタイムスタンプに変換します。
フィールドの例
time:1626774758クエリ文
* | select from_unixtime(time,'Asia/shanghai')クエリと分析結果

localtime 関数
localtime 関数は、HH:MM:SS.Ms フォーマットでローカルタイムを返します。
構文
localtime戻り値の型
Time 型
例
ローカルタイムをクエリします。
クエリ文 (デバッグ)
* | select localtimeクエリと分析結果

localtimestamp 関数
localtimestamp 関数は、YYYY-MM-DD HH:MM:SS.Ms Time_zone フォーマットでローカルの日付と時刻を返します。
構文
localtimestamp戻り値の型
タイムスタンプデータ型。
例
前日のログをクエリします。
クエリ文 (デバッグ)
* | SELECT * FROM log WHERE __time__ < to_unixtime(localtimestamp) AND __time__ > to_unixtime(date_add('day', -1, localtimestamp))クエリと分析結果

now 関数
now 関数は、YYYY-MM-DD HH:MM:SS.Ms Time_zone フォーマットで現在の日付と時刻を返します。now 関数は current_timestamp 関数と同等です。
構文
now()戻り値の型
これはタイムスタンプデータ型です。
例
前日のログをクエリします。
クエリ文 (デバッグ)
* | SELECT * FROM log WHERE __time__ < to_unixtime(now()) AND __time__ > to_unixtime(date_add('day', -1, now()))クエリと分析結果

to_iso8601 関数
to_iso8601 関数は、日付またはタイムスタンプ日時式を ISO 8601 フォーマットに変換します。
構文
to_iso8601(x)パラメーター
パラメーター | 説明 |
x | 値は date 型または timestamp 型です。 |
戻り値の型
varchar
例
current_timestamp 関数を使用して現在の日付と時刻を取得します。次に、to_iso8601 関数を使用して現在の日時式を ISO 8601 フォーマットに変換します。
クエリ文 (デバッグ)
* | select to_iso8601(current_timestamp) AS ISO8601クエリと分析結果

to_unixtime 関数
to_unixtime 関数は、タイムスタンプ日時式を UNIX タイムスタンプに変換します。
構文
to_unixtime(x)パラメーター
パラメーター | 説明 |
x | タイムスタンプ日時式。 |
戻り値の型
double
例
前日のログをクエリします。
クエリ文 (デバッグ)
* | SELECT * FROM log WHERE __time__ < to_unixtime(now()) AND __time__ > to_unixtime(date_add('day', -1, now()))クエリと分析結果

current_unixtimestamp 関数
この関数は現在の Unix タイムスタンプを返します。Unix タイムスタンプは、1970 年 1 月 1 日 00:00:00 協定世界時 (UTC) から経過した合計秒数です。
構文
current_unixtimestamp()戻り値
戻り値の型:
BIGINT(long)説明: 現在の秒数を表す整数を返します。
精度: 値はデフォルトで秒単位の精度です。
例
例 1:現在のタイムスタンプを取得します。
一般的なユースケースは、データが挿入された時刻を記録することです。
* | extend now_ts =current_unixtimestamp() -- サンプル出力:1734913028例 2:フォーマット変換
この関数は、数値のタイムスタンプを人間が読める日付形式に変換するために、
from_unixtimeと共によく使用されます。* | extend readable_time = date_format(from_unixtime(cast(current_unixtimestamp() as double)), '%Y-%m-%d %H:%i:%s') -- サンプル出力:2025-12-23 00:17:08
日付と時刻の抽出関数
day 関数
day 関数は、日時式から月の日を抽出します。day 関数は day_of_month 関数と同等です。
構文
day(x)パラメーター
パラメーター | 説明 |
x | 値は timestamp 型または date 型です。 |
戻り値の型
bigint
例
current_date 関数を使用して現在の日付を取得します。次に、day 関数を使用して現在の日付から月の日を抽出します。
クエリ文 (デバッグ)
* | SELECT current_date, day(current_date)クエリと分析結果

day_of_month 関数
day_of_month 関数は、日時式から月の日を抽出します。day_of_month 関数は day 関数と同等です。
構文
day_of_month(x)パラメーター
パラメーター | 説明 |
x | 値は timestamp 型または date 型です。 |
戻り値の型
bigint
例
current_date 関数を使用して現在の日付を取得します。次に、day_of_month 関数を使用して現在の日付から月の日を抽出します。
クエリ文 (デバッグ)
* | SELECT current_date, day_of_month(current_date)クエリと分析結果

day_of_week 関数
day_of_week 関数は、日時式から曜日を抽出します。
構文
day_of_week(x)パラメーター
パラメーター | 説明 |
x | 値は timestamp 型または date 型です。 |
戻り値の型
bigint
例
current_date 関数を使用して現在の日付を取得します。次に、day_of_week 関数を使用して現在の日付から曜日を抽出します。
クエリ文 (デバッグ)
* | SELECT current_date, day_of_week(current_date)クエリと分析結果

day_of_year 関数
day_of_year 関数は、日時式から年の日を抽出します。
構文
day_of_year(x)パラメーター
パラメーター | 説明 |
x | 値は timestamp 型または date 型です。 |
戻り値の型
bigint
例
current_date 関数を使用して現在の日付を取得します。次に、day_of_year 関数を使用して現在の日付から年の日を抽出します。
クエリ文 (デバッグ)
* | SELECT current_date, day_of_year(current_date)クエリと分析結果

dow 関数
dow 関数は、日時式から曜日を抽出します。dow 関数は day_of_week 関数と同等です。
構文
dow(x)パラメーター
パラメーター | 説明 |
x | 値は timestamp 型または date 型です。 |
戻り値の型
bigint
例
current_date 関数を使用して現在の日付を取得します。次に、dow 関数を使用して現在の日付から曜日を抽出します。
クエリ文 (デバッグ)
* | SELECT current_date, dow(current_date)クエリと分析結果

doy 関数
doy 関数は、日時式から年の日を抽出します。doy 関数は day_of_year 関数と同等です。
構文
doy(x)パラメーター
パラメーター | 説明 |
x | 値は timestamp 型または date 型です。 |
戻り値の型
bigint データ型。
例
current_date 関数を使用して現在の日付を取得します。次に、doy 関数を使用して現在の日付から年の日を抽出します。
クエリ文 (デバッグ)
* | SELECT current_date, doy(current_date)クエリと分析結果

extract 関数
extract 関数は、指定された field に基づいて、日時式から日付または時刻の部分を抽出します。
構文
extract(field from x)パラメーター
パラメーター | 説明 |
field | 有効な値:year、quarter、month、week、day、day_of_month、day_of_week、dow、day_of_year、doy、year_of_week、yow、hour、minute、second、timezone_hour、および timezone_minute。 |
x | 値は date、time、timestamp、または interval (実際の varchar(9)) 型です。 |
戻り値の型
bigint
例
current_date 関数を使用して現在の日付を取得します。次に、extract 関数を使用して現在の日付から年を抽出します。
クエリ文 (デバッグ)
* | SELECT extract(year from current_date)クエリと分析結果

hour 関数
hour 関数は、日時式から時 (0-23) を抽出します。
構文
hour(x)パラメーター
パラメーター | 説明 |
x | 値は timestamp 型です。 |
戻り値の型
bigint
例
current_timestamp 関数を使用して現在の日付と時刻を取得します。次に、hour 関数を使用して現在の時刻から時を抽出します。
クエリ文 (デバッグ)
* | SELECT current_timestamp, hour(current_timestamp)クエリと分析結果

minute 関数
minute 関数は、日時式から時の分を抽出します。
構文
minute(x)パラメーター
パラメーター | 説明 |
x | 値は timestamp 型です。 |
戻り値の型
bigint
例
current_timestamp 関数を使用して現在の日付と時刻を取得します。次に、minute 関数を使用して現在の時刻から分を抽出します。
クエリ文 (デバッグ)
* | SELECT current_timestamp, minute(current_timestamp)クエリと分析結果

month 関数
month 関数は、日時式から年の月を抽出します。
構文
month(x)パラメーター
パラメーター | 説明 |
x | 値は date 型または timestamp 型です。 |
戻り値の型
BIGINT データ型。
例
current_timestamp 関数を使用して現在の日付と時刻を取得します。次に、month 関数を使用して現在の日付から月を抽出します。
クエリ文 (デバッグ)
* | SELECT current_timestamp, month(current_timestamp)クエリと分析結果

quarter 関数
quarter 関数は、指定された日付の年の四半期を返します。
構文
quarter(x)パラメーター
パラメーター | 説明 |
x | 値は date 型または timestamp 型です。 |
戻り値の型
bigint
例
current_timestamp 関数を使用して現在の日付と時刻を取得します。次に、quarter 関数を使用して現在の日付が属する年の四半期を計算します。
クエリ文 (デバッグ)
* | SELECT current_timestamp,quarter(current_timestamp)クエリと分析結果

2番目の関数
second 関数は、日時式から分の秒を抽出します。
構文
second(x)パラメーター
パラメーター | 説明 |
x | 値は timestamp 型です。 |
戻り値の型
bigint
例
current_timestamp 関数を使用して現在の日付と時刻を取得します。次に、second 関数を使用して現在の時刻から秒を抽出します。
クエリ文 (デバッグ)
* | SELECT current_timestamp,second(current_timestamp)クエリと分析結果

timezone_hour 関数
timezone_hour 関数は、タイムゾーンオフセットの時間を返します。
構文
timezone_hour(x)パラメーター
パラメーター | 説明 |
x | 値は timestamp 型です。 |
戻り値の型
bigint
例
current_timestamp 関数を使用して現在の日付と時刻を取得します。次に、timezone_hour 関数を使用して現在の時刻のタイムゾーンオフセットの時間を計算します。
クエリ文 (デバッグ)
* | SELECT current_timestamp, timezone_hour(current_timestamp)クエリと分析結果

timezone_minute 関数
timezone_minute 関数は、タイムゾーンオフセットの分を返します。
構文
timezone_minute(x)パラメーター
パラメーター | 説明 |
x | 値は timestamp 型です。 |
戻り値の型
bigint
例
current_timestamp 関数を使用して現在の日付と時刻を取得します。次に、timezone_minute 関数を使用して現在の時刻のタイムゾーンオフセットの分を計算します。
クエリ文 (デバッグ)
* | SELECT current_timestamp,timezone_minute(current_timestamp)クエリと分析結果

week 関数
week 関数は、指定された日付の年の週を返します。week 関数は week_of_year 関数と同等です。
構文
week(x)パラメーター
パラメーター | 説明 |
x | 値は date 型または timestamp 型です。 |
戻り値の型
bigint
例
current_timestamp 関数を使用して現在の日付と時刻を取得します。次に、week 関数を使用して現在の日付が属する年の週を計算します。
クエリ文 (デバッグ)
* | SELECT current_timestamp, week(current_timestamp)クエリと分析結果

week_of_year 関数
week_of_year 関数は、指定された日付の年の週を返します。week_of_year 関数は week 関数と同等です。
構文
week_of_year(x)パラメーター
パラメーター | 説明 |
x | 値は date 型または timestamp 型です。 |
戻り値の型
bigint
例
current_timestamp 関数を使用して現在の日付と時刻を取得します。次に、week_of_year 関数を使用して現在の日付が属する年の週を計算します。
クエリ文 (デバッグ)
* | SELECT current_timestamp, week_of_year(current_timestamp)クエリと分析結果

year 関数
year 関数は、指定された日付から年を抽出します。
構文
year(x)パラメーター
パラメーター | 説明 |
x | 値は date 型または timestamp 型です。 |
戻り値の型
bigint
例
current_timestamp 関数を使用して現在の日付と時刻を取得します。次に、year 関数を使用して現在の日付から年を抽出します。
クエリ文 (デバッグ)
* | SELECT current_timestamp,year(current_timestamp)クエリと分析結果

year_of_week 関数
year_of_week 関数は、指定された日付の ISO 週の年を返します。year_of_week 関数は yow 関数と同等です。
構文
year_of_week(x)パラメーター
パラメーター | 説明 |
x | 値は date 型または timestamp 型です。 |
戻り値の型
bigint
例
current_timestamp 関数を使用して現在の日付と時刻を取得します。次に、year_of_week 関数を使用して現在の日付の ISO 週の年を返します。
クエリ文 (デバッグ)
* | SELECT current_timestamp,year_of_week(current_timestamp)クエリと分析結果

yow 関数
yow 関数は、指定された日付の ISO 週の年を返します。yow 関数は year_of_week 関数と同等です。
構文
yow(x)パラメーター
パラメーター | 説明 |
x | 値は date 型または timestamp 型です。 |
戻り値の型
bigint
例
current_timestamp 関数を使用して現在の日付と時刻を取得します。次に、yow 関数を使用して現在の日付の ISO 週の年を返します。
クエリ文 (デバッグ)
* | SELECT current_timestamp, yow(current_timestamp)クエリと分析結果

時間間隔関数
date_trunc 関数
date_trunc 関数は、日時式を、ミリ秒、秒、分、時、日、月、年などの指定された時間単位に切り捨てます。この関数は、時間ベースの統計分析が必要なシナリオでよく使用されます。
構文
date_trunc(unit, x)パラメーター
パラメーター | 説明 |
unit | 時間単位。有効な値:millisecond、second、minute、hour、day、week、month、quarter、および year。詳細については、「単位指定子」をご参照ください。 |
x | 日時式。 |
date_trunc 関数は、分単位や時間単位などの固定時間間隔に基づいてのみ統計を計算できます。柔軟な時間ディメンションに基づいて統計を計算するには、剰余演算を使用してデータをグループ化できます。たとえば、5 分ごとに統計を計算できます。
* | SELECT count(1) AS pv, __time__ - __time__ %300 AS time GROUP BY time LIMIT 100戻り値の型
データ型はパラメーター値の型と一致する必要があります。
例
1 分の粒度で平均リクエスト時間を計算し、結果を時間でグループ化してソートします。
クエリ文 (デバッグ)
* | SELECT date_trunc('minute', __time__) AS time, truncate (avg(request_time)) AS avg_time, current_date AS date GROUP BY time ORDER BY time DESC LIMIT 100クエリと分析結果

date_add 関数
date_add 関数は、日付または時刻の値に指定された時間間隔を加算または減算します。
構文
date_add(unit, n, x)パラメーター
パラメーター | 説明 |
unit | 時間単位。有効な値:millisecond、second、minute、hour、day、week、month、quarter、および year。詳細については、「単位指定子」をご参照ください。 |
n | 時間間隔。 |
x | タイムスタンプ日時式。 |
戻り値の型
timestamp
例
前日のログをクエリします。
クエリ文 (デバッグ)
* | SELECT * FROM log WHERE __time__ < to_unixtime(current_timestamp) AND __time__ > to_unixtime(date_add('day', -1, current_timestamp))クエリと分析結果

date_diff 関数
date_diff 関数は、2 つの日付または時刻の差を計算します。
構文
date_diff(unit, x, y)パラメーター
パラメーター | 説明 |
unit | 時間単位。有効な値:millisecond、second、minute、hour、day、week、month、quarter、および year。詳細については、「単位指定子」をご参照ください。 |
x | タイムスタンプ日時式。 |
y | タイムスタンプ日時式。 |
戻り値の型
bigint
例
UsageStartTime フィールドと UsageEndTime フィールドに基づいてサーバーの合計実行時間を計算します。
クエリ文
* | SELECT date_diff('hour', UsageStartTime, UsageEndTime) AS "Time difference (hours)"クエリと分析結果

時系列パディング関数
time_series 関数
time_series 関数は、クエリタイムウィンドウ内の欠損データポイントをパディングします。
time_series 関数は、GROUP BY 句および ORDER BY 句と一緒に使用する必要があります。ORDER BY 句は DESC ソートをサポートしていません。time_series 関数がサブクエリで使用される場合、外部クエリに GROUP BY 句または ORDER BY 句を含めることはできません。
構文
time_series(x, window_time, format, padding_data)パラメーター
パラメーター | 説明 |
x | 時間列、たとえば |
window_time | タイムウィンドウのサイズ。単位:s (秒)、m (分)、h (時)、または d (日)。例:2h、5m、3d。 |
format | 返される結果の時刻フォーマット。詳細については、「フォーマット指定子」をご参照ください。 |
padding_data | コンテンツには以下が含まれます:
|
戻り値の型
varchar
例
2 時間の粒度でデータをパディングし、欠損値を 0 に設定します。
クエリ文 (デバッグ)
* | select * from (select time_series(__time__, '2h', '%Y-%m-%d %H:%i:%s', '0') as time, count(*) as num from log group by time order by time) a limit 100クエリと分析結果

フォーマット指定子
フォーマット | 説明 |
%a | 曜日の短縮名。例:Sun または Sat。 |
%b | 月の短縮名。例:Jan または Dec。 |
%c | 月を数値で表したもの。有効な値:1 から 12。 |
%D | 接尾辞付きの月の日。例:0th、1st、2nd、または 3rd。 |
%d | 月の日を 10 進数フォーマットで表したもの。有効な値:01 から 31。 |
%e | 月の日を 10 進数フォーマットで表したもの。有効な値:1 から 31。 |
%H | 24 時間形式の時。 |
%h | 12 時間形式の時。 |
%i | 分を数値で表したもの。有効な値:00 から 59。 |
%j | 年の日。有効な値:001 から 366。 |
%k | 時。有効な値:0 から 23。 |
%l | 時。有効な値:1 から 12。 |
%M | 月の完全名。例:January または December。 |
%m | 月を数値で表したもの。有効な値:01 から 12。 |
%p | AM または PM。 |
%r | 12 時間形式の時刻。フォーマットは |
%S | 秒。有効な値:00 から 59。 |
%s | 秒。有効な値:00 から 59。 |
%f | マイクロ秒。有効な値:000000 から 999999。 |
%T | 24 時間形式の時刻。フォーマットは |
%v | 年の週。月曜日が週の最初の日です。有効な値:01 から 53。 |
%W | 曜日の完全名。例:Sunday または Saturday。 |
%Y | 4 桁の年。例:2020。 |
%y | 2 桁の年。例:20。 |
%% | パーセント記号 (%) のエスケープ文字。 |
ユニット仕様
単位 | 説明 |
millisecond | ミリ秒 |
second | 2 番目 |
minute | 分 |
hour | 時 |
day | 日 |
week | 週 |
month | 月 |
quarter | 四半期 |
year | 年 |