すべてのプロダクト
Search
ドキュメントセンター

Simple Log Service:日時関数

最終更新日:Jun 23, 2026

Simple Log Service は、日時関数、日時抽出関数、時間間隔関数、および時系列補完関数を提供しており、ログに対してフォーマット変換、グループ化、集計などの日時操作を実行できます。このトピックでは、これらの関数の構文と例について説明します。

日時関数

Log Service は、次の日時関数をサポートしています。

重要
  • 時間 フォーマット を設定する際は、秒までのみ指定してください。ミリ秒やマイクロ秒は含めないでください。

  • 時間文字列の時間部分に対してのみ時間フォーマット (format) を設定する必要があります。タイムゾーンなどの他のコンテンツに対して時間フォーマットを設定する必要はありません。

  • Log Service の各ログには、予約フィールド __time__ が含まれています。 このフィールドの値は、2020-06-17 14:07:47 を表す 1592374067 のような UNIX タイムスタンプです。

  • Log Service の分析文では、文字列はシングルクォーテーション (') で囲む必要があります。 引用符なしの文字や、ダブルクォーテーション (") で囲まれた文字は、フィールド名または列名を表します。 たとえば、'status' は文字列 status を表しますが、status または "status" はログフィールド status を表します。

関数タイプ

関数名

構文

説明

SQL

SPL

日時関数

current_date 関数

current_date

現在の日付を返します。

×

current_time 関数

current_time

現在の時刻とタイムゾーンを返します。

×

current_timestamp 関数

current_timestamp

現在の日付、時刻、タイムゾーンを返します。

×

current_timezone 関数

current_timezone()

現在のタイムゾーンを返します。

×

date 関数

date(x)

日付またはタイムスタンプ式の日付部分を返します。

×

date_format 関数

date_format(x, format)

タイムスタンプ式を指定されたフォーマットの文字列に変換します。

date_parse 関数

date_parse(x, format)

指定されたフォーマットを使用して文字列式をタイムスタンプに解析します。

from_iso8601_date 関数

from_iso8601_date(x)

ISO 8601 形式の日付文字列を日付値に変換します。

×

from_iso8601_timestamp 関数

from_iso8601_timestamp(x)

ISO 8601 形式のタイムスタンプ文字列をタイムスタンプ値に変換します。

×

from_unixtime 関数

from_unixtime(x)

UNIX タイムスタンプをタイムゾーン情報のないタイムスタンプ値に変換します。

from_unixtime(x, time zone)

UNIX タイムスタンプを指定されたタイムゾーンのタイムスタンプ値に変換します。

×

from_unixtime(x, hours, minutes)

UNIX タイムスタンプを、hoursminutes で指定されたオフセットを持つタイムスタンプ値に変換します。

×

localtime 関数

localtime

ローカルタイムを返します。

×

localtimestamp 関数

localtimestamp

ローカルの日付と時刻を返します。

×

now 関数

now()

現在の日付と時刻を返します。

now 関数は current_timestamp 関数のエイリアスです。

×

to_iso8601 関数

to_iso8601(x)

日付またはタイムスタンプ式を ISO 8601 形式の文字列に変換します。

×

to_unixtime 関数

to_unixtime(x)

タイムスタンプ式を UNIX タイムスタンプに変換します。

current_unixtimestamp 関数

current_unixtimestamp()

システムの現在の UNIX タイムスタンプを返します。

×

日時抽出関数

day 関数

day(x)

日付またはタイムスタンプ式から月の日を抽出します。

day 関数は day_of_month 関数のエイリアスです。

×

day_of_month 関数

day_of_month(x)

日付またはタイムスタンプ式から月の日を抽出します。

day_of_month 関数は day 関数のエイリアスです。

×

day_of_week 関数

day_of_week(x)

日付またはタイムスタンプ式から曜日を抽出します。

day_of_week 関数は dow 関数のエイリアスです。

day_of_year 関数

day_of_year(x)

日付またはタイムスタンプの式から年間通算日を抽出します。

day_of_year 関数は doy 関数のエイリアスです。

dow 関数

dow(x)

日付またはタイムスタンプ式から曜日を抽出します。

dow 関数は day_of_week 関数のエイリアスです。

doy 関数

doy(x)

日付またはタイムスタンプの式から年間通算日を抽出します。

doy 関数は day_of_year 関数のエイリアスです。

extract 関数

extract(field from x)

field で指定された、日付や時刻のコンポーネントなどの部分を日付またはタイムスタンプ式から抽出します。

×

hour 関数

hour(x)

日付またはタイムスタンプ式から時刻 (24 時間形式) を抽出します。

minute 関数

minute(x)

日付またはタイムスタンプ式から時刻の分を抽出します。

month 関数

month(x)

日付またはタイムスタンプ式から年の中の月を抽出します。

quarter 関数

quarter(x)

日付またはタイムスタンプ式から年の四半期を返します。

second 関数

second(x)

日付またはタイムスタンプ式から秒を抽出します。

timezone_hour 関数

timezone_hour(x)

タイムゾーンオフセットの時間コンポーネントを返します。

×

timezone_minute 関数

timezone_minute(x)

タイムゾーンオフセットの分コンポーネントを返します。

×

week 関数

week(x)

日付またはタイムスタンプ式から年の週を返します。

week 関数は week_of_year 関数のエイリアスです。

×

week_of_year 関数

week_of_year(x)

指定された日付の年の週を返します。

week_of_year 関数は week 関数のエイリアスです。

×

year 関数

year(x)

日付またはタイムスタンプ式から年を抽出します。

year_of_week 関数

year_of_week(x)

日付またはタイムスタンプ式から ISO 週番号の年を抽出します。

year_of_week 関数は yow 関数のエイリアスです。

yow 関数

yow(x)

対象の日付から ISO 週番号の年を抽出します。

yow 関数は year_of_week 関数のエイリアスです。

時間間隔関数

date_trunc 関数

date_trunc(unit, x)

日付またはタイムスタンプ式を、ミリ秒、秒、分、時、日、月、年などの指定された単位に切り捨てます。

×

date_add 関数

date_add(unit, N, x)

x に N 単位の間隔を追加します。

date_diff 関数

date_diff(unit, x, y)

2 つのタイムスタンプ式 xy の差を、指定された単位で返します。

時系列補完関数

time_series 関数

time_series(x, window, format, padding_data)

クエリのタイムウィンドウ内の欠損データポイントを埋めるために時系列を補完します。

×

日時関数

current_date

current_date 関数は、YYYY-MM-DD フォーマットで現在の日付を返します。

構文

current_date

戻り値の型

Date 型。

昨日のログをクエリします。

  • クエリ・分析文 (デバッグ)

    * |
    SELECT
      *
    FROM  log
    WHERE
      __time__ < to_unixtime(current_date)
      AND __time__ > to_unixtime(date_add('day', -1, current_date))
  • クエリ・分析結果を以下の表に示します。返されるデータは昨日のログからのもので、body_bytes_sentclient_iphosthttp_user_agent などのフィールドが含まれます。

current_time

current_time 関数は、現在の時刻とタイムゾーンを HH:MM:SS.Ms Time_zone フォーマットで返します。

構文

current_time

戻り値の型

Time 型。

現在の時刻とタイムゾーンをクエリします。

  • クエリ・分析文 (デバッグ)

    * | select current_time
  • クエリ・分析結果:_col0 列は 22:34:24.034 Asia/Shanghai を返します。

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))
  • クエリ・分析結果は次の表に示され、body_bytes_sentclient_iphosthttp_user_agent などのフィールドを含む昨日のログデータが含まれます。

current_timezone

current_timezone 関数は、現在のタイムゾーンを返します。

構文

current_timezone()

戻り値の型

Varchar 型。

現在のタイムゾーンをクエリします。

  • クエリ・分析文 (デバッグ)

    * | select current_timezone()
  • クエリ・分析結果:_col0 列は Asia/Shanghai を返します。

date

date 関数は、日時式から日付部分を抽出する関数であり、cast(x as date) と同等です。詳細については、「型変換関数」をご参照ください。

構文

date(x)

パラメーター

パラメーター

説明

x

date または timestamp 式。

戻り値の型

Date 型。

この例では、現在のタイムスタンプから日付を抽出します。

  • クエリ・分析文 (デバッグ)

    * | SELECT current_timestamp, date(current_timestamp)
  • クエリ・分析結果:_col0 列は完全なタイムスタンプを返し、_col1 列は 2021-09-07 のような日付部分を返します。

date_format

date_format 関数は、timestamp 式を指定されたフォーマットの文字列に変換します。

構文

date_format(x, format)

パラメーター

パラメーター

説明

x

timestamp 式。

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_format

date_parse

date_parse 関数は、指定されたフォーマットの文字列を timestamp 値に変換します。

構文

date_parse(x, format)

パラメーター

パラメーター

説明

x

日時文字列。

format

入力日時文字列のフォーマット。詳細については、「フォーマット指定子」をご参照ください。

戻り値の型

Timestamp 型。

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)"
  • クエリ・分析結果:クエリは StartTime として 2021-07-21 20:00:00.000EndTime として 2021-07-21 21:00:00.000、そして時間差として 1 時間を返します。

from_iso8601_date

from_iso8601_date 関数は、ISO 8601 形式の日付文字列を date 値に変換します。

構文

from_iso8601_date(x)

パラメーター

パラメーター

説明

x

ISO 8601 形式の日付文字列。

戻り値の型

Date 型。

time フィールドの値を日付型の日付式に変換します。

  • フィールドサンプル

    time:2020-05-03
  • クエリ・分析文

    * | select from_iso8601_date(time)
  • クエリ・分析結果:_col0 列は date 値である 2020-05-03 を返します。

from_iso8601_timestamp

from_iso8601_timestamp 関数は、ISO 8601 形式のタイムスタンプ文字列を timestamp 値に変換します。

構文

from_iso8601_timestamp(x)

パラメーター

パラメーター

説明

x

ISO 8601 形式のタイムスタンプ文字列。

戻り値の型

Timestamp 型。

この例では、time フィールドを timestamp 値に変換します。

  • フィールドサンプル

    time:2020-05-03T17:30:08
  • クエリ・分析文

    * | select from_iso8601_timestamp(time)
  • クエリ・分析結果:_col0 列の戻り値は 2020-05-03 17:30:08.000 Asia/Shanghai で、タイムゾーン付きのタイムスタンプ型です。

from_unixtime

from_unixtime 関数は、Unix タイムスタンプを timestamp 値に変換します。

構文

  • タイムゾーン情報のないタイムスタンプ値に変換します。

    from_unixtime(x)
  • タイムゾーン情報のあるタイムスタンプ値に変換します。

    from_unixtime(x,time zone)
  • タイムゾーン情報のあるタイムスタンプ値に変換します。ここで、hoursminutes はタイムゾーンオフセットを指定します。

    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')
  • クエリ・分析結果:_col0 列は 2021-07-20 17:52:38.000 Asia/Shanghai を返します。

localtime

localtime 関数は、ローカルタイムを HH:MM:SS.Ms フォーマットで返します。

構文

localtime

戻り値の型

Time 型。

ローカルタイムをクエリします。

  • クエリ・分析文 (デバッグ)

    * | select localtime
  • クエリ・分析結果:_col0 列は 02:09:46.213 を返します。

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))
  • クエリ・分析結果を以下の表に示します。結果は昨日のログデータで構成され、body_bytes_sentclient_iphosthttp_user_agent などのフィールドが含まれます。

now

now 関数は、現在の日付と時刻を YYYY-MM-DD HH:MM:SS.Ms Time_zone フォーマットで返します。now 関数は current_timestamp 関数のエイリアスです。

構文

now()

戻り値の型

Timestamp 型。

昨日のログをクエリします。

  • クエリ・分析文 (デバッグ)

    * |
    SELECT
      *
    FROM  log
    WHERE
      __time__ < to_unixtime(now())
      AND __time__ > to_unixtime(date_add('day', -1, now()))
  • クエリ・分析結果を以下の表に示します。結果は昨日のログデータであり、body_bytes_sentclient_iphosthttp_user_agent などのフィールドが含まれます。

to_iso8601

to_iso8601 関数は、date または timestamp 式を ISO 8601 形式の文字列に変換します。

構文

to_iso8601(x)

パラメーター

パラメーター

説明

x

date または timestamp 式。

戻り値の型

Varchar 型。

この例では、to_iso8601 を使用して current_timestamp からの値を ISO 8601 形式の文字列に変換します。

  • クエリ・分析文 (デバッグ)

    * | select to_iso8601(current_timestamp) AS ISO8601
  • クエリ・分析結果:ISO8601 列は 2021-09-02T16:57:56.964+08:00 を返します。

to_unixtime

to_unixtime 関数は、timestamp 式を Unix タイムスタンプに変換します。

構文

to_unixtime(x)

パラメーター

パラメーター

説明

x

timestamp 式。

戻り値の型

Double 型。

昨日のログをクエリします。

  • クエリ・分析文 (デバッグ)

    * |
    SELECT
      *
    FROM  log
    WHERE
      __time__ < to_unixtime(now())
      AND __time__ > to_unixtime(date_add('day', -1, now()))
  • クエリ・分析結果を以下の表に示します。クエリは、body_bytes_sentclient_iphosthttp_user_agent などのフィールドを含む昨日のログデータを返しました。

current_unixtimestamp

この関数は、システムの現在の Unix タイムスタンプを返します。Unix タイムスタンプは、1970 年 1 月 1 日 00:00:00 協定世界時 (UTC) から経過した総秒数です。

構文

current_unixtimestamp()

戻り値

  • 戻り値の型: BIGINT

  • 戻り値の説明: Unix エポックからの秒数を表す整数を返します。

  • 精度: デフォルトの精度はです。

  • 例 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_of_month 関数と同等です。

構文

day(x)

パラメーター

パラメーター

説明

x

タイムスタンプまたは日付式。

戻り値の型

bigint

この例では、current_date 関数を使用して現在の日付を取得し、次に day 関数を使用して月の日を返します。

  • クエリ・分析文 (デバッグ)

    * | SELECT current_date, day(current_date)
  • クエリ・分析結果:_col0 列は現在の日付を返し、_col1 列は 7 を返します。これは月の 7 日目を示します。

day_of_month 関数

day_of_month 関数は、日時式から月の日を返し、day 関数と同等です。

構文

day_of_month(x)

パラメーター

パラメーター

説明

x

タイムスタンプまたは日付式。

戻り値の型

bigint

この例では、current_date 関数を使用して現在の日付を取得し、day_of_month 関数を使用して月の日を返します。

  • クエリ文 (デバッグ)

    * | SELECT current_date, day_of_month(current_date)
  • クエリ・分析結果:_col0 列は現在の日付を返し、_col1 列は月の日にあたる 7 を返します。

day_of_week 関数

day_of_week 関数は、日付または日時式から曜日を表す整数を返します。

構文

day_of_week(x)

パラメーター

パラメーター

説明

x

日時または日付式。

戻り値の型

戻り値の型は bigint です。

この例では、current_date 関数を使用して現在の日付を取得し、次に day_of_week 関数を使用して曜日を抽出します。

  • クエリ・分析文 (デバッグ)

    * | SELECT current_date, day_of_week(current_date)
  • クエリ・分析結果:_col0 列は現在の日付を返し、_col1 列は 2 を返します。これは週の 2 日目 (火曜日) を表します。

day_of_year 関数

day_of_year 関数は、日時式から年の日を返します。

構文

day_of_year(x)

パラメーター

パラメーター

説明

x

タイムスタンプまたは日付式。

戻り値の型

bigint

この例では、current_date 関数を使用して現在の日付を取得し、day_of_year 関数を使用して年の日を返します。

  • クエリ文 (デバッグ)

    * | SELECT current_date, day_of_year(current_date)
  • クエリ・分析結果:_col0 列は現在の日付を返し、_col1 列は 250 を返します。これは、現在の日付が年の 250 日目であることを意味します。

dow 関数

dow 関数は、日時式から曜日を返します。この関数は day_of_week 関数と同等です。

構文

dow(x)

パラメーター

パラメーター

説明

x

日時式。

戻り値の型

bigint

この例では、dow 関数を使用して現在の日付から曜日を抽出します。

  • クエリ・分析文 (デバッグ)

    * | SELECT current_date, dow(current_date)
  • クエリ・分析結果:_col0 列は現在の日付を返し、_col1 列は 2 を返します。これは週の 2 日目 (火曜日) を表します。

doy 関数

doy 関数は、日時式から年の日を返します。この関数は day_of_year 関数と同等です。

構文

doy(x)

パラメーター

パラメーター

説明

x

timestamp または date 値。

戻り値の型

bigint

この例では、current_date 関数を使用して現在の日付を取得し、doy 関数を使用して年の日を返します。

  • クエリ文 (デバッグ)

    * | SELECT current_date, doy(current_date)
  • クエリ・分析結果:_col0 列は現在の日付を返し、_col1 列は 250 を返します。これは、現在の日付が年の 250 日目であることを示します。

Extract 関数

extract 関数は、指定された field に基づいて、年や時などの特定の部分を日付または時刻式から抽出します。

構文

extract(field from x)

パラメーター

パラメーター

説明

field

抽出する部分。有効な値には、yearquartermonthweekdayday_of_monthday_of_weekdowday_of_yeardoyyear_of_weekyowhourminutesecondtimezone_hour、および timezone_minute があります。

x

datetimetimestamp、または interval (varchar(9)) 型の値を返す式。

戻り値の型

bigint 値を返します。

この例では、current_date 関数から返された日付から年を抽出します。

  • クエリ文 (デバッグ)

    * | SELECT extract(year from current_date)
  • クエリ・分析結果:_col0 列は抽出された年 2021 を返します。

Hour 関数

hour 関数は、日時式から時 (0-23) を抽出します。

構文

hour(x)

パラメーター

パラメーター

説明

x

入力は timestamp 型である必要があります。

戻り値の型

この関数は bigint 型の値を返します。

この例では、current_timestamp 関数を使用して現在のタイムスタンプを取得し、hour 関数を使用して時を抽出します。

  • クエリ文 (デバッグ)

    * | SELECT current_timestamp, hour(current_timestamp)
  • クエリ・分析結果:_col0 列は現在のタイムスタンプを返し、_col1 列は現在の時 11 を返します。

Minute 関数

minute 関数は、タイムスタンプの分コンポーネント (0 から 59) を返します。

構文

minute(x)

パラメーター

パラメーター

説明

x

パラメーターは timestamp 型である必要があります。

戻り値の型

bigint 値を返します。

この例では、current_timestamp 関数で現在のタイムスタンプを取得し、次に分値を抽出します。

  • クエリ・分析文 (デバッグ)

    * | SELECT current_timestamp, minute(current_timestamp)
  • クエリ・分析結果:_col0 列には現在のタイムスタンプが含まれ、_col1 列には 17 などの分コンポーネントが含まれます。

Month 関数

month 関数は、日時式から月を抽出します。

構文

month(x)

パラメーター

パラメーター

説明

x

日付またはタイムスタンプ式。

戻り値の型

bigint

この例では、current_timestamp 関数を使用して現在のタイムスタンプを取得し、次に month 関数を使用して月を抽出します。

  • クエリ文 (デバッグ)

    * | SELECT current_timestamp, month(current_timestamp)
  • クエリ・分析結果:_col0 列は現在のタイムスタンプを返し、_col1 列は現在の月 (9) を返します。

Quarter 関数

quarter 関数は、日付の四半期を返します。

構文

quarter(x)

パラメーター

パラメーター

説明

x

日付またはタイムスタンプ式。

戻り値の型

bigint

この例では、current_timestamp 関数と quarter 関数を使用して、現在の日付の四半期を計算します。

  • クエリ文 (デバッグ)

    * | SELECT current_timestamp,quarter(current_timestamp)
  • クエリ・分析結果:_col0 列は現在のタイムスタンプを返し、_col1 列は現在の四半期である 3 を返します。

Second 関数

`second` 関数は、タイムスタンプ式の秒コンポーネントを返します。

構文

second(x)

パラメーター

パラメーター

説明

x

タイムスタンプ式。

戻り値の型

bigint 値。

この例では、second 関数を使用して、current_timestamp 関数から返された値から秒を抽出します。

  • クエリ文 (デバッグ)

    * | SELECT current_timestamp,second(current_timestamp)
  • クエリ・分析結果:_col0 列は現在のタイムスタンプを返し、_col1 列は現在の秒である 41 を返します。

timezone_hour 関数

この関数は、タイムゾーンの時間オフセットを返します。

構文

timezone_hour(x)

パラメーター

パラメーター

説明

x

タイムスタンプ式。

戻り値の型

bigint 値。

この例では、現在の時刻のタイムゾーンの時間オフセットを取得します。

  • クエリ・分析文 (デバッグ)

    * | SELECT current_timestamp, timezone_hour(current_timestamp)
  • クエリ・分析結果:_col0 列は現在のタイムスタンプを返し、_col1 列はタイムゾーンの時間オフセット (UTC+08:00) である 8 を返します。

Timezone_minute 関数

timezone_minute 関数は、タイムゾーンの分オフセットを計算します。

構文

timezone_minute(x)

パラメーター

パラメーター

説明

x

timestamp 型の式。

戻り値の型

bigint 型の値。

current_timestamp を使用して現在のタイムスタンプを取得し、次に timezone_minute を使用してタイムゾーンの分オフセットを計算します。

  • クエリ・分析文 (デバッグ)

    * | SELECT current_timestamp,timezone_minute(current_timestamp)
  • クエリ・分析結果:_col0 列は現在のタイムスタンプを返し、_col1 列はタイムゾーンの分オフセットである 0 を返します。

Week 関数

week 関数は、指定された日付の年の週を返し、week_of_year 関数と同等です。

構文

week(x)

パラメーター

パラメーター

説明

x

日付またはタイムスタンプ式。

戻り値の型

bigint

current_timestamp 関数を使用して現在の日付と時刻を取得します。次に、week 関数を使用して現在の年の週を計算します。

  • クエリ文 (デバッグ)

    * | SELECT current_timestamp, week(current_timestamp)
  • クエリ・分析結果:_col0 列は現在のタイムスタンプを返し、_col1 列は現在の年の週である 36 を返します。

week_of_year 関数

week_of_year 関数は、week 関数のエイリアスであり、日付の年の週を返します。

構文

week_of_year(x)

パラメーター

パラメーター

説明

x

パラメーターは date または timestamp 型である必要があります。

戻り値の型

bigint

この例では、現在のタイムスタンプから年の週を取得します。

  • クエリ・分析文 (デバッグ)

    * | SELECT current_timestamp, week_of_year(current_timestamp)
  • クエリ・分析結果:_col0 列は現在のタイムスタンプを返し、_col1 列は 36 を返します。これは、現在の日付が年の 36 週目にあることを示します。

Year 関数

year 関数は、日付またはタイムスタンプから年を抽出します。

構文

year(x)

パラメーター

パラメーター

説明

x

パラメーターは date または timestamp である必要があります。

戻り値の型

bigint 値を返します。

この例では、current_timestamp 関数を使用して現在の日付と時刻を取得し、year 関数を使用して年を抽出します。

  • クエリ・分析文 (デバッグ)

    * | SELECT current_timestamp,year(current_timestamp)
  • クエリ・分析結果:_col0 列は現在のタイムスタンプを返し、_col1 列は現在の年を返します。

year_of_week 関数

year_of_week 関数は、ISO 週日付システムにおける指定された日付の年を返します。この関数は yow 関数と同等です。

構文

year_of_week(x)

パラメーター

パラメーター

説明

x

日付またはタイムスタンプ式。

戻り値の型

bigint。

この例では、year_of_week 関数と current_timestamp 関数を使用して、ISO 週日付システムにおける現在の日付の年を返します。

  • クエリ・分析文 (デバッグ)

    * | SELECT current_timestamp,year_of_week(current_timestamp)
  • クエリ・分析結果:_col0 列は現在のタイムスタンプを返し、_col1 列は ISO 週日付システムにおける年、たとえば 2021 を返します。

yow 関数

yow 関数は、ISO 週日付システムに従って日付の年を返します。この関数は year_of_week 関数のエイリアスです。

構文

yow(x)

パラメーター

パラメーター

説明

x

評価する値。日付またはタイムスタンプである必要があります。

戻り値の型

この関数は bigint 型の値を返します。

この例では、current_timestamp 関数を使用して現在の日付と時刻を取得します。次に、yow 関数を使用して ISO 週日付システムに従って年を返します。

  • クエリ文 (デバッグ)

    * | SELECT current_timestamp, yow(current_timestamp)
  • クエリ・分析結果:_col0 列は現在のタイムスタンプを返し、_col1 列は ISO 週日付システムに基づいた現在の年を返します。

時間間隔関数

date_trunc 関数

date_trunc 関数は、日時式を指定された時間単位に切り捨てます。この関数は、時間ベースの集計と分析によく使用されます。

構文

date_trunc(unit, x)

パラメーター

パラメーター

説明

unit

時間単位。有効な値は millisecondsecondminutehourdayweekmonthquarter、および year です。詳細については、「単位の説明」をご参照ください。

x

日時式。

説明

date_trunc 関数は、分単位や時間単位などの固定された時間間隔でのみデータを集計します。5 分ごとなどの柔軟な時間ディメンションでデータをグループ化するには、モジュロ演算子を使用します。

* | SELECT count(1) AS pv,  __time__ - __time__ %300 AS time GROUP BY time LIMIT 100

戻り値の型

戻り値の型は、x パラメーターの型と同じです。

分ごとの平均リクエスト時間を計算し、結果を時間でグループ化してソートします。

  • クエリ・分析文 (デバッグ)

    * |
    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
  • クエリ・分析結果には、time 列 (分単位で整列)、avg_time 列 (平均リクエスト時間)、および date 列 (現在の日付) が含まれます。

date_add 関数

date_add 関数は、日付または時刻の値に指定された時間間隔を加算または減算します。

構文

date_add(unit, n, x)

パラメーター

パラメーター

説明

unit

時間単位。有効な値は millisecondsecondminutehourdayweekmonthquarter、および year です。詳細については、「単位の説明」をご参照ください。

n

加算する時間間隔。負の値は間隔を減算します。

x

timestamp 型の日時式。

戻り値の型

timestamp 値。

昨日のログをクエリします。

  • クエリ・分析文 (デバッグ)

    * |
    SELECT
      *
    FROM  log
    WHERE
      __time__ < to_unixtime(current_timestamp)
      AND __time__ > to_unixtime(date_add('day', -1, current_timestamp))
  • クエリ・分析結果には、body_bytes_sentclient_iphosthttp_user_agent などのフィールドを含む昨日のログデータが含まれます。

date_diff 関数

date_diff 関数は、2 つの日付または時刻式の差を返します。

構文

date_diff(unit, x, y)

パラメーター

パラメーター

説明

unit

時間単位。有効な値は millisecondsecondminutehourdayweekmonthquarter、および year です。詳細については、「単位の説明」をご参照ください。

x

timestamp 型の日時式。

y

timestamp 型の日時式。

戻り値の型

bigint 値。

UsageStartTime フィールドと UsageEndTime フィールドに基づいて、サーバーの使用期間を計算します。

  • クエリ・分析文

    * | SELECT  date_diff('hour', UsageStartTime, UsageEndTime) AS "時間差(時間)"
  • クエリは 24 時間の時間差を返します。

時系列補完関数

time_series 関数

time_series 関数は、クエリのタイムウィンドウ内の欠損データポイントを補完します。

重要

time_series 関数は GROUP BY 句および ORDER BY 句と一緒に使用する必要があります。ORDER BY 句は降順 (DESC) をサポートしていません。この関数がサブクエリで使用される場合、外部クエリには GROUP BY または ORDER BY 句を含めることはできません。

構文

time_series(x, window_time, format, padding_data)

パラメーター

パラメーター

説明

x

__time__ などの時間列。列の値は long または タイムスタンプ 型である必要があります。

window_time

ウィンドウサイズ。単位は s (秒)、m (分)、h (時)、または d (日) です。例:2h5m3d

format

結果の時間フォーマット。詳細については、「フォーマット仕様」をご参照ください。

padding_data

欠損値をどのように補完するかを指定します。有効な値は次のとおりです:

  • 0:欠損値を 0 で補完します。

  • null:欠損値を null で補完します。

  • last:欠損値を前の時点の値で補完します。

  • next:欠損値を次の時点の値で補完します。

  • avg:欠損値を周囲の 2 つの時点の値の平均で補完します。

戻り値の型

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
  • 次の表は、クエリ・分析結果を示しています。クエリは、2 時間の時間粒度での time 列と、対応する num 列を返します。

フォーマット指定子

フォーマット

説明

%a

曜日の省略名。例:SunSat

%b

月の省略名。例:JanDec

%c

月、10 進数として。範囲:1 から 12。

%D

英語の序数接尾辞付きの月の日。例:1st2nd3rd

%d

月の日、ゼロ埋めされた 10 進数として。範囲:01 から 31。

%e

月の日、10 進数として。範囲:1 から 31。

%H

時 (24 時間時計)、ゼロ埋めされた 10 進数として。範囲:00 から 23。

%h

時 (12 時間時計)、ゼロ埋めされた 10 進数として。範囲:01 から 12。

%i

分、ゼロ埋めされた 10 進数として。範囲:00 から 59。

%j

年の日、ゼロ埋めされた 10 進数として。範囲:001 から 366。

%k

時 (24 時間時計)、10 進数として。範囲:0 から 23。

%l

時 (12 時間時計)、10 進数として。範囲:1 から 12。

%M

月の完全名。例:JanuaryDecember

%m

月、ゼロ埋めされた 10 進数として。範囲:01 から 12。

%p

AM または PM

%r

12 時間フォーマットの時間 (hh:mm:ss AM/PM)。

%S

秒、ゼロ埋めされた 10 進数として。範囲:00 から 59。

%s

UNIX エポックからの秒数。

%f

マイクロ秒、ゼロ埋めされた 10 進数として。範囲:000000 から 999999。

%T

24時間フォーマット (hh:mm:ss) の時間。

%v

年の週番号 (01-53)、月曜日を週の初日とします。

%W

曜日の完全名。例:SundaySaturday

%Y

4 桁の年。例:2020

%y

2 桁の年。例:20

%%

リテラルの % 文字。

単位

単位

説明

millisecond

ミリ秒

second

第2

minute

hour

day

week

month

quarter

四半期

year