Simple Log Serviceでは、さまざまな種類の日付と時刻の関数を使用してログデータを処理できます。 関数は、時間関数、日付関数、日付および時刻抽出関数、時間間隔関数、および時系列パディング関数を含む。 関数を使用して、ログの日付と時刻の形式を変換できます。 関数を使用して、ログをグループ化および集計することもできます。 このトピックでは、日付と時刻の関数の構文について説明します。 このトピックでは、関数の使用方法の例も示します。
次の表に、Simple Log Serviceでサポートされている日付と時刻の機能を示します。
Simple log Serviceのログのタイムスタンプは1秒まで正確です。 したがって、時間形式は2番目にのみ指定できます。 詳細については、「フォーマット」をご参照ください。
時間形式は、時間文字列の時間に対してのみ指定する必要があります。 タイムゾーンなどの他のパラメーターには、時間形式を指定する必要はありません。 詳細については、「フォーマット」をご参照ください。
Simple log Serviceの各ログには、予約済みの
__time__
フィールドが含まれます。 フィールドの値はUNIXタイムスタンプです。 例: 1592374067、2020-06-17 14:07:47を示します。分析ステートメントで文字列を使用する場合は、文字列を単一引用符 ('') で囲む必要があります。 囲まれていない文字列または二重引用符 ("") で囲まれている文字列は、フィールド名または列名を示します。 例えば、
'status'
はステータスの文字列を示し、status
または"status"
はステータスログフィールドを示します。
カテゴリ | 関数 | 構文 | 説明 | SQLでサポート | SPLでサポート |
日付と時間の関数 | current_date | 現在の日付を返します。 | √ | × | |
current_time | 現在の時間とタイムゾーンを返します。 | √ | × | ||
current_timestamp | 現在の日付、時刻、およびタイムゾーンを返します。 | √ | × | ||
current_timezone() | 現在のタイムスタンプを返します。 | √ | × | ||
日付 (x) | datetime式の日付部分を返します。 | √ | × | ||
date_format( x, format) | timestamp値を返すことができるdatetime式を、指定した形式のdatetime式に変換します。 | √ | √ | ||
date_parse( x, format) | datetime文字列を、タイムスタンプ値を返すことができ、指定された形式のdatetime式に変換します。 | √ | √ | ||
from_iso8601_date( x) | ISO 8601形式の日付式を、日付値を返すことができる日付式に変換します。 | √ | × | ||
from_iso8601_timestamp( x) | ISO 8601形式のdatetime式を、タイムスタンプ値を返すことができるdatetime式に変換します。 | √ | × | ||
from_unixtime( x) | UNIX timestampを、タイムスタンプ値を返すことができ、タイムゾーンを含まないdatetime式に変換します。 | √ | √ | ||
from_unixtime( x、タイムゾーン) | UNIX timestampを、timestamp値を返すことができ、タイムゾーンを含むdatetime式に変換します。 | √ | × | ||
from_unixtime( x、時間、分) | UNIX timestampを、timestamp値を返すことができ、タイムゾーンを含むdatetime式に変換します。 datetime式では、hoursとminutesの値はタイムゾーンのオフセットを示します。 | √ | × | ||
localtime | ローカル時刻を返します。 | √ | × | ||
localtimestamp | ローカルの日付と時刻を返します。 | √ | × | ||
now() | 現在の日付と時刻を返します。 この関数はcurrent_timestamp関数に相当します。 | √ | × | ||
to_iso8601( x) | 日付またはタイムスタンプ値を返すことができるdatetime式を、ISO 8601形式のdatetime式に変換します。 | √ | × | ||
to_unixtime( x) | timestamp値を返すことができるdatetime式をUNIX timestampに変換します。 | √ | √ | ||
日時抽出関数 | 日 (x) | datetime式から月の日を返します。 この関数はday_of_month関数に相当します。 | √ | × | |
day_of_month( x) | datetime式から月の日を返します。 この関数は日関数に相当します。 | √ | × | ||
day_of_week( x) | datetime式から曜日を返します。 この関数はdow関数に相当します。 | √ | √ | ||
day_of_year( x) | datetime式から年の日付を返します。 この関数はdoy関数に相当します。 | √ | √ | ||
ダウ (x) | datetime式から曜日を返します。 この関数はday_of_week関数と同じです。 | √ | √ | ||
doy( x) | datetime式から年の日付を返します。 この関数はday_of_year関数に相当します。 | √ | √ | ||
extract (xからのフィールド) | 指定されたフィールドをdatetime式から返します。 フィールドには日付または時刻を指定できます。 | √ | × | ||
時間 (x) | datetime式からその日の時間を返します。 24時間時計が使用されます。 | √ | √ | ||
分 (x) | datetime式から時間の分を返します。 | √ | √ | ||
月 (x) | datetime式から年の月を返します。 | √ | √ | ||
四半期 (x) | 指定された日付が属する年の四半期を返します。 | √ | √ | ||
秒 (x) | datetime式から分の秒を返します。 | √ | √ | ||
timezone_hour( x) | タイムゾーンのオフセットを時間単位で返します。 | √ | × | ||
timezone_minute( x) | タイムゾーンのオフセットを分単位で返します。 | √ | × | ||
週 (x) | 指定された日付が属する年の週を返します。 この関数はweek_of_year関数に相当します。 | √ | × | ||
week_of_year( x) | 指定された日付が属する年の週を返します。 この関数はweek関数に相当します。 | √ | × | ||
年 (x) | 指定した日付の年を返します。 | √ | √ | ||
year_of_week( x) | 指定された日付がISO週日付システムに該当する年を返します。 この関数はyow関数に相当します。 | √ | √ | ||
yow( x) | 指定された日付がISO週日付システムに該当する年を返します。 この関数は、year_of_week関数と同等です。 | √ | √ | ||
時間間隔関数 | date_trunc (ユニット, x) | 指定した時間単位に基づいてdatetime式を切り捨てます。 式は、ミリ秒、秒、分、時間、日、月、または年に基づいて切り捨てられます。 | √ | × | |
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関数は、datetime式のdate部分を返します。 この関数は、cast(x as date)
関数に相当します。 詳細については、「データ型変換関数」をご参照ください。
構文
date(x)
パラメーター
パラメーター | 説明 |
x | このパラメーターの値は、日付またはタイムスタンプタイプです。 |
戻り値のデータ型
日付のタイプを設定します。
例
current_timestamp関数を使用して、現在の日付と時刻を取得します。 次に、日付関数を使用して、現在の日付と時刻の日付部分を取得します。
クエリ文 (デバッグ)
* | SELECT current_timestamp, date(current_timestamp)
クエリと分析結果
date_format関数
date_format関数は、タイムスタンプ値を返すことができるdatetime式を指定された形式のdatetime式に変換します。
構文
date_format(x, format)
パラメーター
パラメーター | 説明 |
x | このパラメーターの値は、タイムスタンプ値を返すことができるdatetime式です。 |
形式 | タイムスタンプ値を返すことができるdatetime式を変換するdatetime式の形式。 詳細については、「フォーマット」をご参照ください。 |
戻り値のデータ型
varcharタイプ。
例
NGINXリクエストのステータスを照会し、NGINXリクエストの数を計算してから、照会結果と分析結果を時系列で表示します。 これを行うには、date_trunc関数を使用してログ時間を分単位で切り捨て、date_format関数を使用して時間を % H:% i
形式に変換します。 次に、各ステータスコードの1分あたりのリクエスト数を計算し、クエリと分析結果をフローチャートで表示します。
クエリ文 (デバッグ)
* | 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関数は、datetime文字列を、タイムスタンプ値を返すことができる指定された形式のdatetime式に変換します。
構文
date_parse(x, format)
パラメーター
パラメーター | 説明 |
x | このパラメーターの値はdatetime文字列です。 |
形式 | datetime文字列を変換するタイムスタンプ値を返すことができるdatetime式の形式。 詳細については、「フォーマット」をご参照ください。 |
戻り値のデータ型
timestampタイプ。
例
StartTime
フィールドとEndTime
フィールドの値を、タイムスタンプ値を返すことができるdatetime式に変換し、2つのdatetime式の差を計算します。
クエリ文
*| 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 (hour)"
クエリと分析結果
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形式のdatetime式を、タイムスタンプ値を返すことができるdatetime式に変換します。 戻り値はYYYY-MM-DD HH:MM:SS.Ms Time_zone形式です。
構文
from_iso8601_timestamp(x)
パラメーター
パラメーター | 説明 |
x | このパラメーターの値は、ISO 8601形式のdatetime式です。 |
戻り値のデータ型
timestampタイプ。
例
timeフィールドの値を、タイムスタンプ値を返すことができるdatetime式に変換します。
サンプルフィールド
time:2020-05-03T17:30:08
クエリ文
* | select from_iso8601_timestamp(time)
クエリと分析結果
from_unixtime関数
from_unixtime関数は、UNIX timestampをtimestamp値を返すことができるdatetime式に変換します。 戻り値は、YYYY-MM-DD HH:MM:SS.MsまたはYYYY-MM-DD HH:MM:SS.Ms Time_zone形式です。
構文
次の構文を使用すると、この関数はUNIX timestampを、timestamp値を返すことができ、タイムゾーンを含まないdatetime式に変換します。
from_unixtime(x)
次の構文を使用する場合、関数はUNIX timestampをtimestamp値を返すことができ、タイムゾーンを含むdatetime式に変換します。
from_unixtime(x,time zone)
次の構文を使用する場合、関数はUNIX timestampをtimestamp値を返すことができ、タイムゾーンを含むdatetime式に変換します。 datetime式では、hoursとminutesの値はタイムゾーンのオフセットを示します。
from_unixtime(x, hours, minutes)
パラメーター
パラメーター | 説明 |
x | このパラメーターの値はUNIX timestampです。 |
タイムゾーン | タイムゾーン。 例: Asia/shanghai. |
時間 | 時間単位のタイムゾーンのオフセット。 例: + 07および-09。 |
分 | タイムゾーンのオフセット (分単位) 。 例: + 30および-45。 |
戻り値のデータ型
timestampタイプ。
例
time
フィールドの値を、タイムスタンプ値を返すことができ、タイムゾーンを含むdatetime式に変換します。
サンプルフィールド
time:1626774758
クエリ文
* | select from_unixtime(time,'Asia/shanghai')
クエリと分析結果
localtime関数
localtime関数は、ローカル時間を返します。 戻り値はHH:MM:SS.Ms形式です。
構文
localtime
戻り値のデータ型
時間タイプ。
例
ローカルタイムを照会します。
クエリ文 (デバッグ)
* | select localtime
クエリと分析結果
localtimestamp関数
localtimestamp関数は、ローカルの日付と時刻を返します。 戻り値はYYYY-MM-DD HH:MM:SS.Ms Time_zone形式です。
構文
localtimestamp
戻り値のデータ型
timestampタイプ。
例
前日のログを照会します。
クエリ文 (デバッグ)
* | SELECT * FROM log WHERE __time__ < to_unixtime(localtimestamp) AND __time__ > to_unixtime(date_add('day', -1, localtimestamp))
クエリと分析結果
今関数
now関数は現在の日付と時刻を返します。 戻り値はYYYY-MM-DD HH:MM:SS.Ms Time_zone形式です。 この関数はcurrent_timestamp関数に相当します。
構文
now()
戻り値のデータ型
timestampタイプ。
例
前日のログを照会します。
クエリ文 (デバッグ)
* | SELECT * FROM log WHERE __time__ < to_unixtime(now()) AND __time__ > to_unixtime(date_add('day', -1, now()))
クエリと分析結果
to_iso8601関数
to_iso8601関数は、日付またはタイムスタンプ値を返すことができるdatetime式をISO 8601形式のdatetime式に変換します。
構文
to_iso8601(x)
パラメーター
パラメーター | 説明 |
x | このパラメーターの値は、日付またはタイムスタンプタイプです。 |
戻り値のデータ型
varcharタイプ。
例
current_timestamp関数を使用して、現在の日付と時刻を取得します。 次に、to_iso8601関数を使用して、現在の日付と時刻をISO 8601形式に変換します。
クエリ文 (デバッグ)
* | select to_iso8601(current_timestamp) AS ISO8601
クエリと分析結果
to_unixtime関数
to_unixtime関数は、timestamp値をUNIX timestampに返すことができるdatetime式を変換します。
構文
to_unixtime(x)
パラメーター
パラメーター | 説明 |
x | このパラメーターの値は、タイムスタンプ値を返すことができるdatetime式です。 |
戻り値のデータ型
ダブルタイプ。
例
前日のログを照会します。
クエリ文 (デバッグ)
* | SELECT * FROM log WHERE __time__ < to_unixtime(now()) AND __time__ > to_unixtime(date_add('day', -1, now()))
クエリと分析結果
日関数
day関数は、datetime式から月の日を返します。 この関数はday_of_month関数に相当します。
構文
day(x)
パラメーター
パラメーター | 説明 |
x | このパラメーターの値は、timestampまたはdate型です。 |
戻り値のデータ型
bigint型。
例
current_date関数を使用して、現在の日付を取得します。 次に、日関数を使用して、現在の日付に基づいて月の日を取得します。
クエリ文 (デバッグ)
* | SELECT current_date, day(current_date)
クエリと分析結果
day_of_month関数
day_of_month関数は、datetime式から月の日を返します。 この関数は日関数に相当します。
構文
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関数は、datetime式から曜日を返します。
構文
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関数は、datetime式から年の日を返します。
構文
day_of_year(x)
パラメーター
パラメーター | 説明 |
x | このパラメーターの値は、timestampまたはdate型です。 |
戻り値のデータ型
bigint型。
例
current_date関数を使用して、現在の日付を取得します。 次に、day_of_year関数を使用して、現在の日付に基づいて年の日付を取得します。
クエリ文 (デバッグ)
* | SELECT current_date, day_of_year(current_date)
クエリと分析結果
dow関数
dow関数は、datetime式から曜日を返します。 この関数はday_of_week関数と同じです。
構文
dow(x)
パラメーター
パラメーター | 説明 |
x | このパラメーターの値は、timestampまたはdate型です。 |
戻り値のデータ型
bigint型。
例
current_date関数を使用して、現在の日付を取得します。 次に、dow関数を使用して、現在の日付に基づいて曜日を取得します。
クエリ文 (デバッグ)
* | SELECT current_date, dow(current_date)
クエリと分析結果
doy関数
doy関数は、datetime式から年の日付を返します。 この関数はday_of_year関数に相当します。
構文
doy(x)
パラメーター
パラメーター | 説明 |
x | このパラメーターの値は、timestampまたはdate型です。 |
戻り値のデータ型
bigint型。
例
current_date関数を使用して、現在の日付を取得します。 次に、doy関数を使用して、現在の日付に基づいて年の日付を取得します。
クエリ文 (デバッグ)
* | SELECT current_date, doy(current_date)
クエリと分析結果
抽出関数
extract関数は、datetime式から指定されたフィールドを返します。 フィールドには日付または時刻を指定できます。
構文
extract(field from x)
パラメーター
パラメーター | 説明 |
フィールド | 有効な値: year、quarter、month、week、day、day_of_month、day_of_week、dow、day_of_year、doy、year_of_week、hour、minute、second、timezone_hour、timezone_minute。 |
x | このパラメーターの値は、日付、時刻、タイムスタンプ、または間隔 (実際のvarchar(9)) タイプです。 |
戻り値のデータ型
bigint型。
例
current_date関数を使用して、現在の日付を取得します。 次に、extract関数を使用して、現在の日付の年を取得します。
クエリ文 (デバッグ)
* | SELECT extract(year from current_date)
クエリと分析結果
時間関数
hour関数は、datetime式からその日の時間を返します。 24時間時計が使用されます。
構文
hour(x)
パラメーター
パラメーター | 説明 |
x | このパラメーターの値はtimestamp型です。 |
戻り値のデータ型
bigint型。
例
current_timestamp関数を使用して、現在の日付と時刻を取得します。 次に、時間関数を使用して、現在の時刻に基づいて1日の時間を取得します。
クエリ文 (デバッグ)
* | SELECT current_timestamp, hour(current_timestamp)
クエリと分析結果
分関数
分関数は、datetime式から時間の分を返します。
構文
minute(x)
パラメーター
パラメーター | 説明 |
x | このパラメーターの値はtimestamp型です。 |
戻り値のデータ型
bigint型。
例
current_timestamp関数を使用して、現在の日付と時刻を取得します。 次に、分関数を使用して、現在の時刻に基づいて時間の分を取得します。
クエリ文 (デバッグ)
* | SELECT current_timestamp, minute(current_timestamp)
クエリと分析結果
月関数
month関数は、datetime式から年の月を返します。
構文
month(x)
パラメーター
パラメーター | 説明 |
x | このパラメーターの値は、日付またはタイムスタンプタイプです。 |
戻り値のデータ型
bigint型。
例
current_timestamp関数を使用して、現在の日付と時刻を取得します。 次に、月関数を使用して、現在の日付に基づいて年の月を取得します。
クエリ文 (デバッグ)
* | SELECT current_timestamp, month(current_timestamp)
クエリと分析結果
四半期関数
quarter関数は、指定された日付が属する年の四半期を返します。
構文
quarter(x)
パラメーター
パラメーター | 説明 |
x | このパラメーターの値は、日付またはタイムスタンプタイプです。 |
戻り値のデータ型
bigint型。
例
current_timestamp関数を使用して、現在の日付と時刻を取得します。 次に、四半期関数を使用して、現在の日付が属する年の四半期を取得します。
クエリ文 (デバッグ)
* | SELECT current_timestamp,quarter(current_timestamp)
クエリと分析結果
2番目の関数
2番目の関数は、datetime式から分の秒を返します。
構文
second(x)
パラメーター
パラメーター | 説明 |
x | このパラメーターの値はtimestamp型です。 |
戻り値のデータ型
bigint型。
例
current_timestamp関数を使用して、現在の日付と時刻を取得します。 次に、2番目の関数を使用して、現在の時刻に基づいて分の秒を取得します。
クエリ文 (デバッグ)
* | 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_of_year関数に相当します。
構文
week(x)
パラメーター
パラメーター | 説明 |
x | このパラメーターの値は、日付またはタイムスタンプタイプです。 |
戻り値のデータ型
bigint型。
例
current_timestamp関数を使用して、現在の日付と時刻を取得します。 次に、週関数を使用して、現在の日付が属する年の週を取得します。
クエリ文 (デバッグ)
* | SELECT current_timestamp, week(current_timestamp)
クエリと分析結果
week_of_year関数
week_of_year関数は、指定された日付が属する年の週を返します。 この関数はweek関数に相当します。
構文
week_of_year(x)
パラメーター
パラメーター | 説明 |
x | このパラメーターの値は、日付またはタイムスタンプタイプです。 |
戻り値のデータ型
bigint型。
例
current_timestamp関数を使用して、現在の日付と時刻を取得します。 次に、week_of_year関数を使用して、現在の日付が属する年の週を取得します。
クエリ文 (デバッグ)
* | SELECT current_timestamp, week_of_year(current_timestamp)
クエリと分析結果
年関数
年関数は、指定された日付の年を返します。
構文
year(x)
パラメーター
パラメーター | 説明 |
x | このパラメーターの値は、日付またはタイムスタンプタイプです。 |
戻り値のデータ型
bigint型。
例
current_timestamp関数を使用して、現在の日付と時刻を取得します。 次に、年関数を使用して、現在の日付の年を取得します。
クエリ文 (デバッグ)
* | SELECT current_timestamp,year(current_timestamp)
クエリと分析結果
year_of_week関数
year_of_week関数は、指定された日付がISO週日付システムに含まれる年を返します。 この関数はyow関数に相当します。
構文
year_of_week(x)
パラメーター
パラメーター | 説明 |
x | このパラメーターの値は、日付またはタイムスタンプタイプです。 |
戻り値のデータ型
bigint型。
例
current_timestamp関数を使用して、現在の日付と時刻を取得します。 次に、year_of_week関数を使用して、現在の日付がISO週の日付システムに含まれる年を取得します。
クエリ文 (デバッグ)
* | SELECT current_timestamp,year_of_week(current_timestamp)
クエリと分析結果
yow関数
yow関数は、指定された日付がISO週日付システムに該当する年を返します。 この関数は、year_of_week関数と同等です。
構文
yow(x)
パラメーター
パラメーター | 説明 |
x | このパラメーターの値は、日付またはタイムスタンプタイプです。 |
戻り値のデータ型
bigint型。
例
current_timestamp関数を使用して、現在の日付と時刻を取得します。 次に、yow関数を使用して、現在の日付がISO週の日付システムに含まれる年を取得します。
クエリ文 (デバッグ)
* | SELECT current_timestamp, yow(current_timestamp)
クエリと分析結果
date_trunc関数
date_trunc関数は、指定した時間単位に基づいてdatetime式を切り捨てます。 式は、ミリ秒、秒、分、時間、日、月、または年に基づいて切り捨てられます。 この関数は、時間による統計分析が必要なシナリオでよく使用されます。
構文
date_trunc(unit, x)
パラメーター
パラメーター | 説明 |
ユニット | 時間の単位。 有効な値: ミリ秒、秒、分、時間、日、週、月、四半期、年。 詳細については、「単位」をご参照ください。 |
x | このパラメーターの値はdatetime式です。 |
date_trunc関数を使用すると、固定間隔のみに基づいて統計を測定できます。 間隔は、関数で指定する時間単位によって決まります。 時間単位は、分または時間を含む。 カスタム間隔に基づいて統計を測定する場合は、数学的なモジュロ演算を実行してデータをグループ化することをお勧めします。 例えば、数学的なモジュロ演算を行い、5分間隔でデータをグループ化する。
* | SELECT count(1) AS pv, __time__ - __time__ %300 AS time GROUP BY time LIMIT 100
戻り値のデータ型
パラメーター値のデータ型と同じです。
例
リクエストの平均時間を分単位で計算します。 次に、期間を時系列でグループ化して並べ替えます。
クエリ文 (デバッグ)
* | 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)
パラメーター
パラメーター | 説明 |
ユニット | 時間の単位。 有効な値: ミリ秒、秒、分、時間、日、週、月、四半期、年。 詳細については、「単位」をご参照ください。 |
n | 時間間隔。 |
x | このパラメーターの値は、タイムスタンプ値を返すことができるdatetime式です。 |
戻り値のデータ型
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)
パラメーター
パラメーター | 説明 |
ユニット | 時間の単位。 有効な値: ミリ秒、秒、分、時間、日、週、月、四半期、年。 詳細については、「単位」をご参照ください。 |
x | このパラメーターの値は、タイムスタンプ値を返すことができるdatetime式です。 |
y | このパラメーターの値は、タイムスタンプ値を返すことができるdatetime式です。 |
戻り値のデータ型
bigint型。
例
UsageStartTime
およびUsageEndTime
フィールドに基づいて、サーバーの実行時間を計算します。
クエリ文
* | SELECT date_diff('hour', UsageStartTime, UsageEndTime) AS "Time difference (hour)"
クエリと分析結果
time_series関数
time_series関数は、指定された時間ウィンドウで値が返されないフィールドに値を追加します。
time_series関数をGROUP BYおよびORDER BY句と一緒に使用する必要があります。 ORDER BY句でDESCキーワードを使用してデータを並べ替えることはできません。
構文
time_series(x, window_time, format, padding_data)
パラメーター
パラメーター | 説明 |
x | 時間列。 例: |
ウィンドウ_時間 | タイムウィンドウの期間。 単位: s、m、h、d。 sは秒を示し、mは分を示し、hは時間を示し、dは日を示す。 例: 2h、5m、および3d。 |
形式 | 関数が値を返す時間形式です。 詳細については、「フォーマット」をご参照ください。 |
padding_data | 追加する値。The value that you want to add. 有効な値:
|
戻り値のデータ型
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
クエリと分析結果
フォーマット
Format | 説明 |
%a | 曜日の略語。 例: 太陽と土。 |
%b | 年の月の略語。 例: 1月と12月。 |
%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 | 完全な月の名前。 例: 1月と12月。 |
%m | 月 値は数値型です。 有効な値: 01〜12。 |
%p | その日の午前または午後を示す略語。 有効値:AM と PM |
%r | 時間だ 12時間の時計が使用されます。 時刻は |
%S | 秒 有効な値: 00〜59。 |
%s | 秒 有効な値: 00〜59。 |
%f | マイクロ秒。 有効な値: 000000〜999999。 |
%T | 時間だ 24時間時計が使用されます。 時刻は |
%v | 今年の週。 月曜日は週の最初の日です。 有効な値: 01 ~ 53。 |
%W | 曜日のフルネーム。 例: 日曜日と土曜日。 |
%Y | 4桁の年。 例: 2020。 |
%y | 2桁の年。 例: 20。 |
%% | パーセント記号 (%) のエスケープ文字。 |
単位
単位 | 説明 |
millisecond | ミリ秒 |
二番目 | 秒 |
minute | 分 |
hour | 1 時間 |
day | 1 日 |
week | 週 |
month | 1 か月 |
quarter | 3 か月 |
year | 年 |