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

Simple Log Service:日付と時刻の関数

最終更新日:Dec 31, 2025

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_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)

日時式から時 (0-23) を抽出します。

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

戻り値の型

データ型。

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

  • クエリ文 (デバッグ)

    * |
    SELECT
      *
    FROM  log
    WHERE
      __time__ < to_unixtime(current_date)
      AND __time__ > to_unixtime(date_add('day', -1, current_date))
  • クエリと分析結果current_date

current_time 関数

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

構文

current_time

戻り値の型

時刻データ型を指定します。

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

  • クエリ文 (デバッグ)

    * | select current_time
  • クエリと分析結果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_date

current_timezone 関数

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

構文

current_timezone()

戻り値の型

varchar

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

  • クエリ文 (デバッグ)

    * | select current_timezone()
  • クエリと分析結果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

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_format

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)"
  • クエリと分析結果 date_parse(

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_date

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_iso8601_timestamp

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` 日時式に変換します。ここで、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')
  • クエリと分析結果from_unixtime

localtime 関数

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

構文

localtime

戻り値の型

Time 型

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

  • クエリ文 (デバッグ)

    * | select localtime
  • クエリと分析結果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))
  • クエリと分析結果current_date

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()))
  • クエリと分析結果current_date

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_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_date

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

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

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_week

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)
  • クエリと分析結果day_of_year

dow 関数

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

構文

dow(x)

パラメーター

パラメーター

説明

x

値は timestamp 型または date 型です。

戻り値の型

bigint

current_date 関数を使用して現在の日付を取得します。次に、dow 関数を使用して現在の日付から曜日を抽出します。

  • クエリ文 (デバッグ)

    * | SELECT current_date, dow(current_date)
  • クエリと分析結果day_of_week

doy 関数

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

構文

doy(x)

パラメーター

パラメーター

説明

x

値は timestamp 型または date 型です。

戻り値の型

bigint データ型。

current_date 関数を使用して現在の日付を取得します。次に、doy 関数を使用して現在の日付から年の日を抽出します。

  • クエリ文 (デバッグ)

    * | SELECT current_date, doy(current_date)
  • クエリと分析結果day_of_year

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)
  • クエリと分析結果extract

hour 関数

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

構文

hour(x)

パラメーター

パラメーター

説明

x

値は timestamp 型です。

戻り値の型

bigint

current_timestamp 関数を使用して現在の日付と時刻を取得します。次に、hour 関数を使用して現在の時刻から時を抽出します。

  • クエリ文 (デバッグ)

    * | SELECT current_timestamp, hour(current_timestamp)
  • クエリと分析結果hour

minute 関数

minute 関数は、日時式から時の分を抽出します。

構文

minute(x)

パラメーター

パラメーター

説明

x

値は timestamp 型です。

戻り値の型

bigint

current_timestamp 関数を使用して現在の日付と時刻を取得します。次に、minute 関数を使用して現在の時刻から分を抽出します。

  • クエリ文 (デバッグ)

    * | SELECT current_timestamp, minute(current_timestamp)
  • クエリと分析結果minute

month 関数

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

構文

month(x)

パラメーター

パラメーター

説明

x

値は date 型または timestamp 型です。

戻り値の型

BIGINT データ型。

current_timestamp 関数を使用して現在の日付と時刻を取得します。次に、month 関数を使用して現在の日付から月を抽出します。

  • クエリ文 (デバッグ)

    * | SELECT current_timestamp, month(current_timestamp)
  • クエリと分析結果month

quarter 関数

quarter 関数は、指定された日付の年の四半期を返します。

構文

quarter(x)

パラメーター

パラメーター

説明

x

値は date 型または timestamp 型です。

戻り値の型

bigint

current_timestamp 関数を使用して現在の日付と時刻を取得します。次に、quarter 関数を使用して現在の日付が属する年の四半期を計算します。

  • クエリ文 (デバッグ)

    * | SELECT current_timestamp,quarter(current_timestamp)
  • クエリと分析結果quarter

2番目の関数

second 関数は、日時式から分の秒を抽出します。

構文

second(x)

パラメーター

パラメーター

説明

x

値は timestamp 型です。

戻り値の型

bigint

current_timestamp 関数を使用して現在の日付と時刻を取得します。次に、second 関数を使用して現在の時刻から秒を抽出します。

  • クエリ文 (デバッグ)

    * | SELECT current_timestamp,second(current_timestamp)
  • クエリと分析結果second

timezone_hour 関数

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

構文

timezone_hour(x)

パラメーター

パラメーター

説明

x

値は timestamp 型です。

戻り値の型

bigint

current_timestamp 関数を使用して現在の日付と時刻を取得します。次に、timezone_hour 関数を使用して現在の時刻のタイムゾーンオフセットの時間を計算します。

  • クエリ文 (デバッグ)

    * | SELECT current_timestamp, timezone_hour(current_timestamp)
  • クエリと分析結果timezone_hour

timezone_minute 関数

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

構文

timezone_minute(x)

パラメーター

パラメーター

説明

x

値は timestamp 型です。

戻り値の型

bigint

current_timestamp 関数を使用して現在の日付と時刻を取得します。次に、timezone_minute 関数を使用して現在の時刻のタイムゾーンオフセットの分を計算します。

  • クエリ文 (デバッグ)

    * | SELECT current_timestamp,timezone_minute(current_timestamp)
  • クエリと分析結果timezone_minute

week 関数

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

構文

week(x)

パラメーター

パラメーター

説明

x

値は date 型または timestamp 型です。

戻り値の型

bigint

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

  • クエリ文 (デバッグ)

    * | SELECT current_timestamp, week(current_timestamp)
  • クエリと分析結果week

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)
  • クエリと分析結果week

year 関数

year 関数は、指定された日付から年を抽出します。

構文

year(x)

パラメーター

パラメーター

説明

x

値は date 型または timestamp 型です。

戻り値の型

bigint

current_timestamp 関数を使用して現在の日付と時刻を取得します。次に、year 関数を使用して現在の日付から年を抽出します。

  • クエリ文 (デバッグ)

    * | SELECT current_timestamp,year(current_timestamp)
  • クエリと分析結果year

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)
  • クエリと分析結果year_of_week

yow 関数

yow 関数は、指定された日付の ISO 週の年を返します。yow 関数は year_of_week 関数と同等です。

構文

yow(x)

パラメーター

パラメーター

説明

x

値は date 型または timestamp 型です。

戻り値の型

bigint

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

  • クエリ文 (デバッグ)

    * | SELECT current_timestamp, yow(current_timestamp)
  • クエリと分析結果year_of_week

時間間隔関数

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_trunc

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))
  • クエリと分析結果current_date

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)"
  • クエリと分析結果date_diff

時系列パディング関数

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

時間列、たとえば __time__。時間列の値は long 型または timestamp 型です。

window_time

タイムウィンドウのサイズ。単位:s (秒)、m (分)、h (時)、または d (日)。例:2h、5m、3d。

format

返される結果の時刻フォーマット。詳細については、「フォーマット指定子」をご参照ください。

padding_data

コンテンツには以下が含まれます:

  • 0:欠損値を 0 に設定します。

  • null:欠損値を null に設定します。

  • last:欠損値を前の時点の値に設定します。

  • next:欠損値を次の時点の値に設定します。

  • avg:欠損値を前後の時点の値の平均に設定します。

戻り値の型

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 時間形式の時刻。フォーマットは hh:mm:ss AM/PM です。

%S

秒。有効な値:00 から 59。

%s

秒。有効な値:00 から 59。

%f

マイクロ秒。有効な値:000000 から 999999。

%T

24 時間形式の時刻。フォーマットは hh:mm:ss です。

%v

年の週。月曜日が週の最初の日です。有効な値:01 から 53。

%W

曜日の完全名。例:Sunday または Saturday。

%Y

4 桁の年。例:2020。

%y

2 桁の年。例:20。

%%

パーセント記号 (%) のエスケープ文字。

ユニット仕様

単位

説明

millisecond

ミリ秒

second

2 番目

minute

hour

day

week

month

quarter

四半期

year