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

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

最終更新日:Feb 15, 2025

Simple Log Service では、さまざまな種類の日付と時刻の関数を使用してログデータを処理できます。関数には、時間関数、日付関数、日付と時刻の抽出関数、時間間隔関数、および時系列パディング関数が含まれます。これらの関数を使用して、ログの日付と時刻の形式を変換できます。また、これらの関数を使用して、ログをグループ化および集計することもできます。このトピックでは、日付と時刻の関数の構文について説明します。また、関数の使用方法の例も示します。

日付と時刻関数の概要

次の表に、Simple Log Service でサポートされている日付と時刻の関数を示します。

重要
  • Simple Log Service のログのタイムスタンプは秒単位まで正確です。したがって、時間形式は秒単位までしか指定できません。詳細については、「形式」をご参照ください。

  • 時間文字列の時間に対してのみ時間形式を指定する必要があります。タイムゾーンなどの他のパラメーターには、時間形式を指定する必要はありません。詳細については、「形式」をご参照ください。

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

  • 分析文で文字列を使用する場合は、文字列を一重引用符 ('') で囲む必要があります。囲まれていない文字列、または二重引用符 ("") で囲まれた文字列は、フィールド名または列名を示します。たとえば、'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()

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

この関数は current_timestamp 関数と同じです。

×

to_iso8601 関数

to_iso8601(x)

日付またはタイムスタンプ値を返すことができる日時式を、ISO 8601 形式の日時式に変換します。

×

to_unixtime 関数

to_unixtime(x)

タイムスタンプ値を返すことができる日時式を UNIX タイムスタンプに変換します。

日付と時刻の抽出関数

day 関数

day(x)

日時式から、月の何日目かを返します。

この関数は day_of_month 関数と同じです。

×

day_of_month 関数

day_of_month(x)

日時式から、月の何日目かを返します。

この関数は day 関数と同じです。

×

day_of_week 関数

day_of_week(x)

日時式から、曜日を返します。

この関数は dow 関数と同じです。

day_of_year 関数

day_of_year(x)

日時式から年の何日目かを返します。

この関数は doy 関数と同じです。

dow 関数

dow(x)

日時式から、曜日を返します。

この関数は day_of_week 関数と同じです。

doy 関数

doy(x)

日時式から年の何日目かを返します。

この関数は day_of_year 関数と同じです。

extract 関数

extract(field from x)

日時式から指定された field を返します。フィールドは日付または時刻です。

×

hour 関数

hour(x)

日時式から、1 日のうちの時間を返します。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_of_year 関数と同じです。

×

week_of_year 関数

week_of_year(x)

指定した日付が属する、年の週番号を返します。

この関数は week 関数と同じです。

×

year 関数

year(x)

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

year_of_week 関数

year_of_week(x)

ISO 週日付システムで、指定した日付が属する年を返します。

この関数は yow 関数と同じです。

yow 関数

yow(x)

ISO 週日付システムで、指定した日付が属する年を返します。

この関数は 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))
  • クエリと分析結果current_date

current_time 関数

current_time 関数は現在の時刻とタイムゾーンを返します。戻り値は HH:MM:SS.Ms Time_zone 形式です。

構文

current_time

戻り値の型

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 関数は、日時式の日付部分を返します。この関数は 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 リクエストのステータスをクエリし、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

日時文字列を変換する、タイムスタンプ値を返すことができる日時式の形式。詳細については、「形式」をご参照ください。

戻り値の型

timestamp 型。

StartTime フィールドと EndTime フィールドの値を、タイムスタンプ値を返すことができる日時式に変換し、2 つの日時式の差を計算します。

  • クエリステートメント

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

from_iso8601_date 関数

from_iso8601_date 関数は、ISO 8601 形式の日付式を、日付値を返すことができる日付式に変換します。戻り値は YYYY-MM-DD 形式です。

構文

from_iso8601_date(x)

パラメーター

パラメーター

説明

x

このパラメーターの値は、ISO 8601 形式の日付式です。

戻り値の型

date 型。

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 形式の日時式です。

戻り値の型

timestamp 型。

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 形式です。

構文

  • 次の構文を使用すると、関数は UNIX タイムスタンプを、タイムスタンプ値を返すことができ、タイムゾーンを含まない日時式に変換します。

    from_unixtime(x)
  • 次の構文を使用すると、関数は UNIX タイムスタンプを、タイムスタンプ値を返すことができ、タイムゾーンを含む日時式に変換します。

    from_unixtime(x,time zone)
  • 次の構文を使用すると、関数は UNIX タイムスタンプを、タイムスタンプ値を返すことができ、タイムゾーンを含む日時式に変換します。日時式では、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

戻り値の型

timestamp 型。

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

  • クエリステートメント(デバッグ

    * |
    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 形式です。この関数は current_timestamp 関数と同じです。

構文

now()

戻り値の型

timestamp 型。

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

  • クエリステートメント(デバッグ

    * |
    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

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 関数と同じです。

構文

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 関数は、日時式から曜日を返します。この関数は day_of_week 関数と同じです。

構文

dow(x)

パラメーター

パラメーター

説明

x

このパラメーターの値は timestamp 型または date 型です。

戻り値の型

bigint 型。

current_date 関数を使用して現在の日付を取得します。次に、dow 関数を使用して現在の日付に基づいて曜日を取得します。

  • クエリステートメント(デバッグ

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

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 関数は日時式から、1 日のうちの時間を返します。24 時間制が使用されます。

構文

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

second 関数

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_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 関数と同じです。

構文

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 週日付システムで指定した日付が属する年を返します。この関数は 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 週日付システムで指定した日付が属する年を返します。この関数は 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

戻り値の型

パラメーター値のデータ型と同じです。

リクエストの平均継続時間を分単位で計算します。次に、継続時間を時系列でグループ化してソートします。

  • クエリステートメント(デバッグ

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

time_series 関数

time_series 関数は、指定されたタイムウィンドウで値が返されないフィールドに値を追加します。

重要

time_series 関数は GROUP BY 句および ORDER BY 句と組み合わせて使用する必要があります。ORDER BY 句で DESC キーワードを使用してデータをソートすることはできません。

構文

time_series(x, window_time, format, padding_data)

パラメーター

パラメーター

説明

x

時間列。例:__time__。このパラメーターの値は long 型または timestamp 型です。

window_time

タイムウィンドウの期間。単位:s、m、h、d。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

minute

hour

day

week

month

quarter

四半期

year