メインコンテンツまでスキップ
メインコンテンツまでスキップ

日付と時刻の操作に関する関数

このセクションのほとんどの関数は、Europe/Amsterdam のようなオプションのタイムゾーン引数を受け入れます。この場合、タイムゾーンはローカル(デフォルト)のものではなく、指定されたものになります。

SELECT
    toDateTime('2016-06-15 23:00:00') AS time,
    toDate(time) AS date_local,
    toDate(time, 'Asia/Yekaterinburg') AS date_yekat,
    toString(time, 'US/Samoa') AS time_samoa
┌────────────────time─┬─date_local─┬─date_yekat─┬─time_samoa──────────┐
│ 2016-06-15 23:00:00 │ 2016-06-15 │ 2016-06-16 │ 2016-06-15 09:00:00 │
└─────────────────────┴────────────┴────────────┴─────────────────────┘

UTCTimestamp

導入バージョン: v22.11

クエリ分析の瞬間における現在の日付と時刻を返します。この関数は定数式です。

この関数は、now('UTC') と同じ結果を返します。MySQLのサポートのためにのみ追加されました。now が推奨される使用法です。

構文

UTCTimestamp()

引数

  • なし。 返される値

クエリ分析の瞬間における現在の日付と時刻を返します。 DateTime

現在のUTCタイムスタンプを取得

SELECT UTCTimestamp()
┌──────UTCTimestamp()─┐
│ 2024-05-28 08:32:09 │
└─────────────────────┘

YYYYMMDDToDate

導入バージョン: v23.9

年、月、日を含む数字を Date に変換します。この関数は、関数 toYYYYMMDD() の逆です。 入力が有効な日付値をエンコードしていない場合、出力は未定義です。

構文

YYYYMMDDToDate(YYYYMMDD)

引数

返される値

提供された引数から Date 値を返します。 Date

SELECT YYYYMMDDToDate(20230911);
┌─toYYYYMMDD(20230911)─┐
│           2023-09-11 │
└──────────────────────┘

YYYYMMDDToDate32

導入バージョン: v23.9

年、月、日を含む数字を Date32 に変換します。この関数は、関数 toYYYYMMDD() の逆です。 入力が有効な Date32 値をエンコードしていない場合、出力は未定義です。

構文

YYYYMMDDToDate32(YYYYMMDD)

引数

返される値

提供された引数から Date32 値を返します。 Date32

SELECT YYYYMMDDToDate32(20000507);
┌─YYYYMMDDToDate32(20000507)─┐
│                 2000-05-07 │
└────────────────────────────┘

YYYYMMDDhhmmssToDateTime

導入バージョン: v23.9

年、月、日、時、分、秒を含む数字を DateTime に変換します。この関数は、関数 toYYYYMMDDhhmmss() の逆です。 入力が有効な DateTime 値をエンコードしていない場合、出力は未定義です。

構文

YYYYMMDDhhmmssToDateTime(YYYYMMDDhhmmss[, timezone])

引数

  • YYYYMMDDhhmmss — 年、月、日、時、分、秒を含む数字。 (U)Int* または Float* または Decimal
  • timezone — タイムゾーン名。 String

返される値

提供された引数から DateTime 値を返します。 DateTime

SELECT YYYYMMDDToDateTime(20230911131415);
┌──────YYYYMMDDhhmmssToDateTime(20230911131415)─┐
│                           2023-09-11 13:14:15 │
└───────────────────────────────────────────────┘

YYYYMMDDhhmmssToDateTime64

導入バージョン: v23.9

年、月、日、時、分、秒を含む数字を DateTime64 に変換します。この関数は、関数 toYYYYMMDDhhmmss() の逆です。 入力が有効な DateTime64 値をエンコードしていない場合、出力は未定義です。

構文

YYYYMMDDhhmmssToDateTime64(YYYYMMDDhhmmss[, precision[, timezone]])

引数

  • YYYYMMDDhhmmss — 年、月、日、時、分、秒を含む数字。 (U)Int* または Float* または Decimal
  • precision — 小数部分の精度 (0-9)。 UInt8
  • timezone — タイムゾーン名。 String

返される値

提供された引数から DateTime64 値を返します。 DateTime64

SELECT YYYYMMDDhhmmssToDateTime64(20230911131415, 3, 'Asia/Istanbul');
┌─YYYYMMDDhhmm⋯/Istanbul')─┐
│  2023-09-11 13:14:15.000 │
└──────────────────────────┘

addDate

導入バージョン: v23.9

提供された日付、時間付きの日付、または文字列でエンコードされた日付または時間付きの日付に時間間隔を加えます。 加算の結果がデータ型の境界の外にある値になると、結果は未定義です。

構文

addDate(datetime, interval)

引数

返される値

intervaldatetime に加算した結果の日付または時間付きの日付を返します。 Date または Date32 または DateTime または DateTime64

日付に間隔を追加

SELECT addDate(toDate('2018-01-01'), INTERVAL 3 YEAR)
┌─addDate(toDa⋯valYear(3))─┐
│               2021-01-01 │
└──────────────────────────┘

addDays

導入バージョン: v1.1

日付、時間付きの日付、または文字列でエンコードされた日付または時間付きの日付に指定された日数を加えます。

構文

addDays(datetime, num)

引数

返される値

datetimenum 日を加算した結果を返します。 Date または Date32 または DateTime または DateTime64

異なる日付タイプに日数を追加

WITH
    toDate('2024-01-01') AS date,
    toDateTime('2024-01-01 00:00:00') AS date_time,
    '2024-01-01 00:00:00' AS date_time_string
SELECT
    addDays(date, 5) AS add_days_with_date,
    addDays(date_time, 5) AS add_days_with_date_time,
    addDays(date_time_string, 5) AS add_days_with_date_time_string
┌─add_days_with_date─┬─add_days_with_date_time─┬─add_days_with_date_time_string─┐
│         2024-01-06 │     2024-01-06 00:00:00 │        2024-01-06 00:00:00.000 │
└────────────────────┴─────────────────────────┴────────────────────────────────┘

代替のINTERVAL構文を使用

SELECT dateAdd('1998-06-16'::Date, INTERVAL 10 day)
┌─plus(CAST('1⋯valDay(10))─┐
│               1998-06-26 │
└──────────────────────────┘

addHours

導入バージョン: v1.1

日付、時間付きの日付、または文字列でエンコードされた日付または時間付きの日付に指定された時間数を加えます。

構文

addHours(datetime, num)

引数

返される値

datetimenum 時間を加算した結果を返します。 DateTime または DateTime64(3)

異なる日付タイプに時間を追加

WITH
    toDate('2024-01-01') AS date,
    toDateTime('2024-01-01 00:00:00') AS date_time,
    '2024-01-01 00:00:00' AS date_time_string
SELECT
    addHours(date, 12) AS add_hours_with_date,
    addHours(date_time, 12) AS add_hours_with_date_time,
    addHours(date_time_string, 12) AS add_hours_with_date_time_string
┌─add_hours_with_date─┬─add_hours_with_date_time─┬─add_hours_with_date_time_string─┐
│ 2024-01-01 12:00:00 │      2024-01-01 12:00:00 │         2024-01-01 12:00:00.000 │
└─────────────────────┴──────────────────────────┴─────────────────────────────────┘

代替のINTERVAL構文を使用

SELECT dateAdd('1998-06-16'::Date, INTERVAL 10 hour)
┌─plus(CAST('1⋯alHour(10))─┐
│      1998-06-16 10:00:00 │
└──────────────────────────┘

addInterval

導入バージョン: v22.11

別の間隔または間隔のタプルに間隔を加算します。

注記

同じ型の間隔は単一の間隔に結合されます。たとえば、toIntervalDay(1)toIntervalDay(2) が渡された場合、結果は (3) になります。

構文

addInterval(interval_1, interval_2)

引数

返される値

間隔のタプルを返します。 Tuple(Interval)

間隔を追加

SELECT addInterval(INTERVAL 1 DAY, INTERVAL 1 MONTH);
SELECT addInterval((INTERVAL 1 DAY, INTERVAL 1 YEAR), INTERVAL 1 MONTH);
SELECT addInterval(INTERVAL 2 DAY, INTERVAL 1 DAY)
┌─addInterval(toIntervalDay(1), toIntervalMonth(1))─┐
│ (1,1)                                             │
└───────────────────────────────────────────────────┘
┌─addInterval((toIntervalDay(1), toIntervalYear(1)), toIntervalMonth(1))─┐
│ (1,1,1)                                                                │
└────────────────────────────────────────────────────────────────────────┘
┌─addInterval(toIntervalDay(2), toIntervalDay(1))─┐
│ (3)                                             │
└─────────────────────────────────────────────────┘

addMicroseconds

導入バージョン: v22.6

指定されたマイクロ秒数を時間付きの日付または文字列でエンコードされた時間付きの日付に加えます。

構文

addMicroseconds(datetime, num)

引数

  • datetime — 指定されたマイクロ秒数を加算する時間付きの日付。 DateTime または DateTime64 または String
  • num — 加算するマイクロ秒数。 (U)Int* または Float*

返される値

date_timenum マイクロ秒を加算した結果を返します。 DateTime64

異なる日時タイプにマイクロ秒を追加

WITH
    toDateTime('2024-01-01 00:00:00') AS date_time,
    '2024-01-01 00:00:00' AS date_time_string
SELECT
    addMicroseconds(date_time, 1000000) AS add_microseconds_with_date_time,
    addMicroseconds(date_time_string, 1000000) AS add_microseconds_with_date_time_string
┌─add_microseconds_with_date_time─┬─add_microseconds_with_date_time_string─┐
│      2024-01-01 00:00:01.000000 │             2024-01-01 00:00:01.000000 │
└─────────────────────────────────┴────────────────────────────────────────┘

代替のINTERVAL構文を使用

SELECT dateAdd('1998-06-16'::DateTime, INTERVAL 10 microsecond)
┌─plus(CAST('19⋯osecond(10))─┐
│ 1998-06-16 00:00:00.000010 │
└────────────────────────────┘

addMilliseconds

導入バージョン: v22.6

指定されたミリ秒数を時間付きの日付または文字列でエンコードされた時間付きの日付に加えます。

構文

addMilliseconds(datetime, num)

引数

  • datetime — 指定されたミリ秒数を加算する時間付きの日付。 DateTime または DateTime64 または String
  • num — 加算するミリ秒数。 (U)Int* または Float*

返される値

datetimenum ミリ秒を加算した結果を返します。 DateTime64

異なる日時タイプにミリ秒を追加

WITH
    toDateTime('2024-01-01 00:00:00') AS date_time,
    '2024-01-01 00:00:00' AS date_time_string
SELECT
    addMilliseconds(date_time, 1000) AS add_milliseconds_with_date_time,
    addMilliseconds(date_time_string, 1000) AS add_milliseconds_with_date_time_string
┌─add_milliseconds_with_date_time─┬─add_milliseconds_with_date_time_string─┐
│         2024-01-01 00:00:01.000 │                2024-01-01 00:00:01.000 │
└─────────────────────────────────┴────────────────────────────────────────┘

代替のINTERVAL構文を使用

SELECT dateAdd('1998-06-16'::DateTime, INTERVAL 10 millisecond)
┌─plus(CAST('1⋯second(10))─┐
│  1998-06-16 00:00:00.010 │
└──────────────────────────┘

addMinutes

導入バージョン: v1.1

指定された分数を日付、時間付きの日付、または文字列でエンコードされた日付または時間付きの日付に加えます。

構文

addMinutes(datetime, num)

引数

返される値

datetimenum 分を加算した結果を返します。 DateTime または DateTime64(3)

異なる日付タイプに分を追加

WITH
    toDate('2024-01-01') AS date,
    toDateTime('2024-01-01 00:00:00') AS date_time,
    '2024-01-01 00:00:00' AS date_time_string
SELECT
    addMinutes(date, 20) AS add_minutes_with_date,
    addMinutes(date_time, 20) AS add_minutes_with_date_time,
    addMinutes(date_time_string, 20) AS add_minutes_with_date_time_string
┌─add_minutes_with_date─┬─add_minutes_with_date_time─┬─add_minutes_with_date_time_string─┐
│   2024-01-01 00:20:00 │        2024-01-01 00:20:00 │           2024-01-01 00:20:00.000 │
└───────────────────────┴────────────────────────────┴───────────────────────────────────┘

代替のINTERVAL構文を使用

SELECT dateAdd('1998-06-16'::Date, INTERVAL 10 minute)
┌─plus(CAST('1⋯Minute(10))─┐
│      1998-06-16 00:10:00 │
└──────────────────────────┘

addMonths

導入バージョン: v1.1

指定された月数を日付、時間付きの日付、または文字列でエンコードされた日付または時間付きの日付に加えます。

構文

addMonths(datetime, num)

引数

返される値

datetimenum 月を加算した結果を返します。 Date または Date32 または DateTime または DateTime64

異なる日付タイプに月を追加

WITH
    toDate('2024-01-01') AS date,
    toDateTime('2024-01-01 00:00:00') AS date_time,
    '2024-01-01 00:00:00' AS date_time_string
SELECT
    addMonths(date, 6) AS add_months_with_date,
    addMonths(date_time, 6) AS add_months_with_date_time,
    addMonths(date_time_string, 6) AS add_months_with_date_time_string
┌─add_months_with_date─┬─add_months_with_date_time─┬─add_months_with_date_time_string─┐
│           2024-07-01 │       2024-07-01 00:00:00 │          2024-07-01 00:00:00.000 │
└──────────────────────┴───────────────────────────┴──────────────────────────────────┘

代替のINTERVAL構文を使用

SELECT dateAdd('1998-06-16'::Date, INTERVAL 10 month)
┌─plus(CAST('1⋯lMonth(10))─┐
│               1999-04-16 │
└──────────────────────────┘

addNanoseconds

導入バージョン: v22.6

指定されたナノ秒数を時間付きの日付または文字列でエンコードされた時間付きの日付に加えます。

構文

addNanoseconds(datetime, num)

引数

  • datetime — 指定されたナノ秒数を加算する時間付きの日付。 DateTime または DateTime64 または String
  • num — 加算するナノ秒数。 (U)Int* または Float*

返される値

datetimenum ナノ秒を加算した結果を返します。 DateTime64

異なる日時タイプにナノ秒を追加

WITH
    toDateTime('2024-01-01 00:00:00') AS date_time,
    '2024-01-01 00:00:00' AS date_time_string
SELECT
    addNanoseconds(date_time, 1000) AS add_nanoseconds_with_date_time,
    addNanoseconds(date_time_string, 1000) AS add_nanoseconds_with_date_time_string
┌─add_nanoseconds_with_date_time─┬─add_nanoseconds_with_date_time_string─┐
│  2024-01-01 00:00:00.000001000 │         2024-01-01 00:00:00.000001000 │
└────────────────────────────────┴───────────────────────────────────────┘

代替のINTERVAL構文を使用

SELECT dateAdd('1998-06-16'::DateTime, INTERVAL 1000 nanosecond)
┌─plus(CAST('199⋯osecond(1000))─┐
│ 1998-06-16 00:00:00.000001000 │
└───────────────────────────────┘

addQuarters

導入バージョン: v20.1

指定された四半期数を日付、時間付きの日付、または文字列でエンコードされた日付または時間付きの日付に加えます。

構文

addQuarters(datetime, num)

引数

  • datetime — 指定された四半期数を加算する日付または時間付きの日付。 Date または Date32 または DateTime または DateTime64 または String
  • num — 加算する四半期数。 (U)Int* または Float*

返される値

datetimenum 四半期を加算した結果を返します。 Date または Date32 または DateTime または DateTime64

異なる日付タイプに四半期を追加

WITH
    toDate('2024-01-01') AS date,
    toDateTime('2024-01-01 00:00:00') AS date_time,
    '2024-01-01 00:00:00' AS date_time_string
SELECT
    addQuarters(date, 1) AS add_quarters_with_date,
    addQuarters(date_time, 1) AS add_quarters_with_date_time,
    addQuarters(date_time_string, 1) AS add_quarters_with_date_time_string
┌─add_quarters_with_date─┬─add_quarters_with_date_time─┬─add_quarters_with_date_time_string─┐
│             2024-04-01 │         2024-04-01 00:00:00 │            2024-04-01 00:00:00.000 │
└────────────────────────┴─────────────────────────────┴────────────────────────────────────┘

代替のINTERVAL構文を使用

SELECT dateAdd('1998-06-16'::Date, INTERVAL 10 quarter)
┌─plus(CAST('1⋯uarter(10))─┐
│               2000-12-16 │
└──────────────────────────┘

addSeconds

導入バージョン: v1.1

指定された秒数を日付、時間付きの日付、または文字列でエンコードされた日付または時間付きの日付に加えます。

構文

addSeconds(datetime, num)

引数

返される値

datetimenum 秒を加算した結果を返します。 DateTime または DateTime64(3)

異なる日付タイプに秒を追加

WITH
    toDate('2024-01-01') AS date,
    toDateTime('2024-01-01 00:00:00') AS date_time,
    '2024-01-01 00:00:00' AS date_time_string
SELECT
    addSeconds(date, 30) AS add_seconds_with_date,
    addSeconds(date_time, 30) AS add_seconds_with_date_time,
    addSeconds(date_time_string, 30) AS add_seconds_with_date_time_string
┌─add_seconds_with_date─┬─add_seconds_with_date_time─┬─add_seconds_with_date_time_string─┐
│   2024-01-01 00:00:30 │        2024-01-01 00:00:30 │           2024-01-01 00:00:30.000 │
└───────────────────────┴────────────────────────────┴───────────────────────────────────┘

代替のINTERVAL構文を使用

SELECT dateAdd('1998-06-16'::Date, INTERVAL 10 second)
┌─dateAdd('1998-06-16'::Date, INTERVAL 10 second)─┐
│                             1998-06-16 00:00:10 │
└─────────────────────────────────────────────────┘

addTupleOfIntervals

導入バージョン: v22.11

間隔のタプルを日付または時間付きの日付に順次加算します。

構文

addTupleOfIntervals(datetime, intervals)

引数

返される値

加算された intervals を含む date を返します。 Date または Date32 または DateTime または DateTime64

日付に間隔のタプルを追加

WITH toDate('2018-01-01') AS date
SELECT addTupleOfIntervals(date, (INTERVAL 1 DAY, INTERVAL 1 MONTH, INTERVAL 1 YEAR))
┌─addTupleOfIntervals(date, (toIntervalDay(1), toIntervalMonth(1), toIntervalYear(1)))─┐
│                                                                           2019-02-02 │
└──────────────────────────────────────────────────────────────────────────────────────┘

addWeeks

導入バージョン: v1.1

指定された週数を日付、時間付きの日付、または文字列でエンコードされた日付または時間付きの日付に加えます。

構文

addWeeks(datetime, num)

引数

返される値

datetimenum 週間を加算した結果を返します。 Date または Date32 または DateTime または DateTime64

異なる日付タイプに週間を追加

WITH
    toDate('2024-01-01') AS date,
    toDateTime('2024-01-01 00:00:00') AS date_time,
    '2024-01-01 00:00:00' AS date_time_string
SELECT
    addWeeks(date, 5) AS add_weeks_with_date,
    addWeeks(date_time, 5) AS add_weeks_with_date_time,
    addWeeks(date_time_string, 5) AS add_weeks_with_date_time_string
┌─add_weeks_with_date─┬─add_weeks_with_date_time─┬─add_weeks_with_date_time_string─┐
│          2024-02-05 │      2024-02-05 00:00:00 │         2024-02-05 00:00:00.000 │
└─────────────────────┴──────────────────────────┴─────────────────────────────────┘

代替のINTERVAL構文を使用

SELECT dateAdd('1998-06-16'::Date, INTERVAL 10 week)
┌─plus(CAST('1⋯alWeek(10))─┐
│               1998-08-25 │
└──────────────────────────┘

addYears

導入バージョン: v1.1

指定された年数を日付、時間付きの日付、または文字列でエンコードされた日付または時間付きの日付に加えます。

構文

addYears(datetime, num)

引数

返される値

datetimenum 年を加算した結果を返します。 Date または Date32 または DateTime または DateTime64

異なる日付タイプに年を追加

WITH
    toDate('2024-01-01') AS date,
    toDateTime('2024-01-01 00:00:00') AS date_time,
    '2024-01-01 00:00:00' AS date_time_string
SELECT
    addYears(date, 1) AS add_years_with_date,
    addYears(date_time, 1) AS add_years_with_date_time,
    addYears(date_time_string, 1) AS add_years_with_date_time_string
┌─add_years_with_date─┬─add_years_with_date_time─┬─add_years_with_date_time_string─┐
│          2025-01-01 │      2025-01-01 00:00:00 │         2025-01-01 00:00:00.000 │
└─────────────────────┴──────────────────────────┴─────────────────────────────────┘

代替のINTERVAL構文を使用

SELECT dateAdd('1998-06-16'::Date, INTERVAL 10 year)
┌─plus(CAST('1⋯alYear(10))─┐
│               2008-06-16 │
└──────────────────────────┘

age

導入バージョン: v23.1

startdateenddate の差の単位成分を返します。 差は1ナノ秒の精度で計算されます。

たとえば、2021-12-29 と 2022-01-01 の差は、日単位で3日、月単位で0ヶ月、年単位で0年です。

age の代替として、関数 timeDiff を参照してください。

構文

age('unit', startdate, enddate, [timezone])

引数

  • unit — 結果の間隔のタイプ。
単位可能な値
nanosecondnanosecond, nanoseconds, ns
microsecondmicrosecond, microseconds, us, u
millisecondmillisecond, milliseconds, ms
secondsecond, seconds, ss, s
minuteminute, minutes, mi, n
hourhour, hours, hh, h
dayday, days, dd, d
weekweek, weeks, wk, ww
monthmonth, months, mm, m
quarterquarter, quarters, qq, q
yearyear, years, yyyy, yy
  • startdate — 引いてくる最初の時刻の値(被減算数)。 Date または Date32 または DateTime または DateTime64
  • enddate — 引かれる第二の時刻の値(減算数)。 Date または Date32 または DateTime または DateTime64
  • timezone — オプション。タイムゾーン名。指定すると、startdateenddate の両方に適用されます。指定しない場合は、startdateenddate のタイムゾーンが使用されます。異なる場合、結果は不明確です。 String

返される値

enddatestartdate の差を単位で表した値を返します。 Int32

時間の単位で年齢を計算

SELECT age('hour', toDateTime('2018-01-01 22:30:00'), toDateTime('2018-01-02 23:00:00'))
┌─age('hour', toDateTime('2018-01-01 22:30:00'), toDateTime('2018-01-02 23:00:00'))─┐
│                                                                                24 │
└───────────────────────────────────────────────────────────────────────────────────┘

異なる単位で歳を計算

SELECT
    toDate('2022-01-01') AS e,
    toDate('2021-12-29') AS s,
    age('day', s, e) AS day_age,
    age('month', s, e) AS month_age,
    age('year', s, e) AS year_age
┌──────────e─┬──────────s─┬─day_age─┬─month_age─┬─year_age─┐
│ 2022-01-01 │ 2021-12-29 │       3 │         0 │        0 │
└────────────┴────────────┴─────────┴───────────┴──────────┘

changeDay

導入バージョン: v24.7

日付または日時の「日」の成分を変更します。

構文

changeDay(date_or_datetime, value)

引数

返される値

日付や日時の成分が変更されたのと同じ型の値を返します。 Date または Date32 または DateTime または DateTime64

使用例

SELECT changeDay('2024-01-31'::DateTime, 15)
2024-01-15 00:00:00

changeHour

導入バージョン: v24.7

日付または日時の「時」の成分を変更します。

構文

changeHour(date_or_datetime, value)

引数

返される値

日付や日時の成分が変更されたのと同じ型の値を返します。 DateTime または DateTime64

使用例

SELECT changeHour('2024-01-01 12:00:00'::DateTime, 5)
2024-01-01 05:00:00

changeMinute

導入バージョン: v24.7

日付または日時の「分」の成分を変更します。

構文

changeMinute(date_or_datetime, value)

引数

返される値

日付や日時の成分が変更されたのと同じ型の値を返します。 DateTime または DateTime64

使用例

SELECT changeMinute('2024-01-01 12:30:00'::DateTime, 45)
2024-01-01 12:45:00

changeMonth

導入バージョン: v24.7

日付または日時の「月」の成分を変更します。

構文

changeMonth(date_or_datetime, value)

引数

返される値

日付や日時の成分が変更されたのと同じ型の値を返します。 Date または Date32 または DateTime または DateTime64

使用例

SELECT changeMonth('2024-01-01'::DateTime, 12)
2024-12-01 00:00:00

changeSecond

導入バージョン: v24.7

日付または日時の「秒」の成分を変更します。

構文

changeSecond(date_or_datetime, value)

引数

返される値

日付や日時の成分が変更されたのと同じ型の値を返します。 DateTime または DateTime64

使用例

SELECT changeSecond('2024-01-01 12:30:45'::DateTime, 15)
2024-01-01 12:30:15

changeYear

導入バージョン: v24.7

日付または日時の「年」の成分を変更します。

構文

changeYear(date_or_datetime, value)

引数

返される値

日付や日時の成分が変更されたのと同じ型の値を返します。 Date または Date32 または DateTime または DateTime64

使用例

SELECT changeYear('2024-01-01'::DateTime, 2023)
2023-01-01 00:00:00

dateName

導入バージョン: v21.7

指定された日付の特定の部分を返します。

可能な値:

  • 'year'
  • 'quarter'
  • 'month'
  • 'week'
  • 'dayofyear'
  • 'day'
  • 'weekday'
  • 'hour'
  • 'minute'
  • 'second'

構文

dateName(date_part, date[, timezone])

引数

  • date_part — 抽出したい日付の部分。 String
  • datetime — 日付または時間付き日付の値。 Date または Date32 または DateTime または DateTime64
  • timezone — オプション。タイムゾーン。 String

返される値

指定された日付の部分を返します。 String

異なる日付の部分を抽出

WITH toDateTime('2021-04-14 11:22:33') AS date_value
SELECT
    dateName('year', date_value),
    dateName('month', date_value),
    dateName('day', date_value)
┌─dateName('year', date_value)─┬─dateName('month', date_value)─┬─dateName('day', date_value)─┐
│ 2021                         │ April                         │ 14                          │
└──────────────────────────────┴───────────────────────────────┴─────────────────────────────┘

dateTrunc

導入バージョン: v20.8

日付と時刻の値を指定された日付の部分まで切り詰めます。

構文

dateTrunc(unit, datetime[, timezone])

引数

  • unit — 結果を切り詰める間隔のタイプ。unit 引数は大文字と小文字を区別しません。 | 単位 | 互換性 | |--------------|----------------------------| | nanosecond | DateTime64とのみ互換性があります | | microsecond| DateTime64とのみ互換性があります | | millisecond| DateTime64とのみ互換性があります | | second | | | minute | | | hour | | | day | | | week | | | month | | | quarter | | | year | | String
  • datetime — 日付と時刻。 Date または Date32 または DateTime または DateTime64
  • timezone — オプション。返される日時のタイムゾーン名。指定しない場合、関数は datetime 引数のタイムゾーンを使用します。 String

返される値

切り詰められた日付と時刻の値を返します。

単位引数datetime 引数返される値の型
年、四半期、月、週Date32 または DateTime64 または Date または DateTimeDate32 または Date
日、時、分、秒Date32, DateTime64, Date, または DateTimeDateTime64 または DateTime
ミリ秒、マイクロ秒、すべてDateTime64
ナノ秒スケールは3、6、または9

タイムゾーンなしで切り詰める

SELECT now(), dateTrunc('hour', now());
┌───────────────now()─┬─dateTrunc('hour', now())──┐
│ 2020-09-28 10:40:45 │       2020-09-28 10:00:00 │
└─────────────────────┴───────────────────────────┘

指定されたタイムゾーンで切り詰める

SELECT now(), dateTrunc('hour', now(), 'Asia/Istanbul');
┌───────────────now()─┬─dateTrunc('hour', now(), 'Asia/Istanbul')──┐
│ 2020-09-28 10:46:26 │                        2020-09-28 13:00:00 │
└─────────────────────┴────────────────────────────────────────────┘

formatDateTime

Introduced in: v1.1

指定されたフォーマット文字列に従って、日付または日時をフォーマットします。formatは定数式であるため、単一の結果カラムに対して複数のフォーマットを使用することはできません。

formatDateTimeはMySQLのdatetimeフォーマットスタイルを使用しています。詳細はmysql docsを参照してください。

この関数の逆の操作はparseDateTimeです。

置換フィールドを使用することで、結果の文字列のパターンを定義できます。 下の表の例カラムは、2018-01-02 22:33:44のフォーマット結果を示しています。

置換フィールド:

プレースホルダー説明
%a省略形の曜日名 (月〜日)Mon
%b省略形の月名 (1月〜12月)Jan
%c月を整数値で表したもの (01-12)01
%C100で割った年を整数に切り捨てたもの (00-99)20
%dゼロパディングされた日 (01-31)02
%D短いMM/DD/YY形式の日付、%m/%d/%yと同等01/02/18
%eスペースパディングされた日 (1-31)2
%f小数秒123456
%F短いYYYY-MM-DD形式の日付、%Y-%m-%dと同等2018-01-02
%g2桁の年形式、ISO 8601に準拠18
%GISO週間番号のための4桁の年形式2018
%h12時間形式の時 (01-12)09
%H24時間形式の時 (00-23)22
%i分 (00-59)33
%I12時間形式の時 (01-12)10
%j年の通し日 (001-366)002
%k24時間形式の時 (00-23)14
%l12時間形式の時 (01-12)09
%m月を整数値で表したもの (01-12)01
%M完全な月名 (1月〜12月)January
%n改行文字
%pAMまたはPMの指定PM
%Q四半期 (1-4)1
%r12時間形式のHH:MM AM/PM時間、%h:%i %pと同等10:30 PM
%R24時間形式のHH:MM時間、%H:%iと同等22:33
%s秒 (00-59)44
%S秒 (00-59)44
%t水平タブ文字
%TISO 8601時間形式 (HH:MM:SS)、%H:%i:%Sと同等22:33:44
%uISO 8601曜日を1から7までの数値で表したもの2
%VISO 8601週間番号 (01-53)01
%w日曜日を0とする整数値の曜日2
%W完全な曜日名 (月曜日〜日曜日)月曜日
%y年の最後の2桁 (00-99)18
%Y2018
%zUTCからの時間オフセット (HHMM形式)-0500
%%%記号%
  • ClickHouseのバージョンがv23.4より前では、%fはDate、Date32、またはDateTime(小数秒を持たない)または、精度が0のDateTime64の場合に単一のゼロ (0) を出力します。
  • ClickHouseのバージョンがv25.1より前では、%fはDateTime64のスケールによって指定された桁数を出力し、固定の6桁ではありません。
  • ClickHouseのバージョンがv23.4より前では、%Mは完全な月名 (1月〜12月) の代わりに分 (00-59) を出力します。

構文

formatDateTime(datetime, format[, timezone])

引数

  • datetime — フォーマットする日付または日時。Date または Date32 または DateTime または DateTime64
  • format — 置換フィールドを含むフォーマット文字列。String
  • timezone — オプション。フォーマットされた時間のためのタイムゾーン名。String

戻り値

指定されたフォーマットに従った時間と日付の値を返します。String

年プレースホルダーで日付をフォーマット

SELECT formatDateTime(toDate('2010-01-04'), '%g')
┌─formatDateTime(toDate('2010-01-04'), '%g')─┐
│ 10                                         │
└────────────────────────────────────────────┘

小数秒のあるDateTime64をフォーマット

SELECT formatDateTime(toDateTime64('2010-01-04 12:34:56.123456', 7), '%f')
┌─formatDateTime(toDateTime64('2010-01-04 12:34:56.123456', 7), '%f')─┐
│ 1234560                                                             │
└─────────────────────────────────────────────────────────────────────┘

タイムゾーン指定でフォーマット

SELECT
    now() AS ts,
    time_zone,
    formatDateTime(ts, '%T', time_zone) AS str_tz_time
FROM system.time_zones
WHERE time_zone LIKE 'Europe%'
LIMIT 10
┌──────────────────ts─┬─time_zone─────────┬─str_tz_time─┐
│ 2023-09-08 19:13:40 │ Europe/Amsterdam  │ 21:13:40    │
│ 2023-09-08 19:13:40 │ Europe/Andorra    │ 21:13:40    │
│ 2023-09-08 19:13:40 │ Europe/Astrakhan  │ 23:13:40    │
│ 2023-09-08 19:13:40 │ Europe/Athens     │ 22:13:40    │
│ 2023-09-08 19:13:40 │ Europe/Belfast    │ 20:13:40    │
│ 2023-09-08 19:13:40 │ Europe/Belgrade   │ 21:13:40    │
│ 2023-09-08 19:13:40 │ Europe/Berlin     │ 21:13:40    │
│ 2023-09-08 19:13:40 │ Europe/Bratislava │ 21:13:40    │
│ 2023-09-08 19:13:40 │ Europe/Brussels   │ 21:13:40    │
│ 2023-09-08 19:13:40 │ Europe/Bucharest  │ 22:13:40    │
└─────────────────────┴───────────────────┴─────────────┘

formatDateTimeInJodaSyntax

Introduced in: v20.1

formatDateTimeに似ていますが、Jodaスタイルでdatetimeをフォーマットします。詳細はJoda Time documentationを参照してください。

この関数の逆の操作はparseDateTimeInJodaSyntaxです。

置換フィールドを使用することで、結果の文字列のパターンを定義できます。

置換フィールド:

プレースホルダー説明表現
G紀元テキストAD
C紀元の世紀 (>=0)数値20
Y紀元の年 (>=0)1996
x週年 (未サポート)1996
w週年の週 (未サポート)数値27
e曜日数値2
E曜日テキスト火曜日; 火
y1996
D年の日数値189
M年の月7月; 7月; 07
d月の日数値10
a半日テキストPM
K半日の時 (0~11)数値0
h半日の時 (1~12)数値12
H日の時 (0~23)数値0
k日の時 (1~24)数値24
m時の分数値30
s分の秒数値55
S小数秒数値978
zタイムゾーンテキスト東部標準時; EST
Zタイムゾーンオフセットゾーン-0800; -0812
'テキストのエスケープデリミタ
''シングルクォートリテラル'

構文

formatDateTimeInJodaSyntax(datetime, format[, timezone])

引数

  • datetime — フォーマットする日付または日時。DateTime または Date または Date32 または DateTime64
  • format — Jodaスタイルの置換フィールドを持つフォーマット文字列。String
  • timezone — オプション。フォーマットされた時間のためのタイムゾーン名。String

戻り値

指定されたフォーマットに従った時間と日付の値を返します。String

Joda構文を使用したdatetimeのフォーマット

SELECT formatDateTimeInJodaSyntax(toDateTime('2010-01-04 12:34:56'), 'yyyy-MM-dd HH:mm:ss')
┌─formatDateTimeInJodaSyntax(toDateTime('2010-01-04 12:34:56'), 'yyyy-MM-dd HH:mm:ss')─┐
│ 2010-01-04 12:34:56                                                                     │
└─────────────────────────────────────────────────────────────────────────────────────────┘

fromDaysSinceYearZero

Introduced in: v23.11

1 January 0000から経過した日数に基づいて、ISO 8601で定義されたプロレプティックグレゴリオ暦における対応する日付を返します。

計算はMySQLのFROM_DAYS()関数と同じです。Date型の範囲内で表現できない場合、結果は未定義です。

構文

fromDaysSinceYearZero(days)

引数

  • days — 年0から経過した日数。UInt32

戻り値

年0から経過した日数に対応する日付を返します。Date

年0からの経過日数を日付に変換

SELECT
fromDaysSinceYearZero(739136) AS date1,
fromDaysSinceYearZero(toDaysSinceYearZero(toDate('2023-09-08'))) AS date2
┌──────date1─┬──────date2─┐
│ 2023-09-08 │ 2023-09-08 │
└────────────┴────────────┘

fromDaysSinceYearZero32

Introduced in: v23.11

1 January 0000から経過した日数に基づいて、ISO 8601で定義されたプロレプティックグレゴリオ暦における対応する日付を返します。 計算はMySQLのFROM_DAYS()関数と同じです。Date32型の範囲内で表現できない場合、結果は未定義です。

構文

fromDaysSinceYearZero32(days)

引数

  • days — 年0から経過した日数。UInt32

戻り値

年0から経過した日数に対応する日付を返します。Date32

年0からの経過日数を日付に変換

SELECT
fromDaysSinceYearZero32(739136) AS date1,
fromDaysSinceYearZero32(toDaysSinceYearZero(toDate('2023-09-08'))) AS date2
┌──────date1─┬──────date2─┐
│ 2023-09-08 │ 2023-09-08 │
└────────────┴────────────┘

fromModifiedJulianDay

Introduced in: v21.1

修正ユリウス日番号をテキスト形式のプロレプティックグレゴリオ暦日付に変換します。この関数は、-678941から2973483までの日数をサポートします(0000-01-01および9999-12-31を表す)。日数がサポート範囲外の場合、例外をスローします。

構文

fromModifiedJulianDay(day)

引数

  • day — 修正ユリウス日番号。(U)Int*

戻り値

テキスト形式の日付を返します。String

修正ユリウス日を日付に変換

SELECT fromModifiedJulianDay(58849)
┌─fromModifiedJulianDay(58849)─┐
│ 2020-01-01                   │
└──────────────────────────────┘

fromModifiedJulianDayOrNull

Introduced in: v21.1

fromModifiedJulianDay()と似ていますが、例外をスローするのではなく、NULLを返します。

構文

fromModifiedJulianDayOrNull(day)

引数

  • day — 修正ユリウス日番号。(U)Int*

戻り値

有効なday引数に対してテキスト形式の日付を返しますが、そうでない場合はnullを返します。Nullable(String)

Null処理付きで修正ユリウス日を日付に変換

SELECT fromModifiedJulianDayOrNull(58849);
SELECT fromModifiedJulianDayOrNull(60000000); -- invalid argument, returns NULL
┌─fromModified⋯Null(58849)─┐
│ 2020-01-01               │
└──────────────────────────┘
┌─fromModified⋯l(60000000)─┐
│ ᴺᵁᴸᴸ                     │
└──────────────────────────┘

fromUTCTimestamp

Introduced in: v22.1

UTCタイムゾーンから指定されたタイムゾーンの日時または日時値に変換します。この関数は主にApache Sparkや類似のフレームワークとの互換性のために含まれています。

構文

fromUTCTimestamp(datetime, time_zone)

引数

  • datetime — 定数の日時または日時値または式。DateTime または DateTime64
  • time_zone — タイムゾーンを表す定数の文字列型値または式。String

戻り値

指定されたタイムゾーンのDateTime/DateTime64を返します。DateTime または DateTime64

UTCタイムゾーンを指定されたタイムゾーンに変換

SELECT fromUTCTimestamp(toDateTime64('2023-03-16 10:00:00', 3), 'Asia/Shanghai')
┌─fromUTCTimestamp(toDateTime64('2023-03-16 10:00:00',3), 'Asia/Shanghai')─┐
│                                                 2023-03-16 18:00:00.000 │
└─────────────────────────────────────────────────────────────────────────┘

fromUnixTimestamp

Introduced in: v20.8

この関数はUnixタイムスタンプをカレンダー日付および日の時間に変換します。

以下の2つの方法で呼び出すことができます:

構文

fromUnixTimestamp(timestamp)
fromUnixTimestamp(timestamp[, format[, timezone]])

引数

  • timestamp — Unixタイムスタンプまたは日時/日時値。(U)Int* または Date または Date32 または DateTime または DateTime64
  • format — オプション。出力フォーマット用の定数フォーマット文字列。String
  • timezone — オプション。定数タイムゾーン文字列。String

戻り値

1つの引数で呼び出された場合はDateTimeを、2つまたは3つの引数で呼び出された場合はStringを返します。DateTime または String

UnixタイムスタンプをDateTimeに変換

SELECT fromUnixTimestamp(423543535)
┌─fromUnixTimestamp(423543535)─┐
│          1983-06-04 10:58:55 │
└──────────────────────────────┘

フォーマット付きのUnixタイムスタンプを変換

SELECT fromUnixTimestamp(1234334543, '%Y-%m-%d %R:%S') AS DateTime
┌─DateTime────────────┐
│ 2009-02-11 14:42:23 │
└─────────────────────┘

fromUnixTimestampInJodaSyntax

Introduced in: v23.1

この関数はUnixタイムスタンプをカレンダー日付および日の時間に変換します。

以下の2つの方法で呼び出すことができます:

単一の引数の型がIntegerの場合、DateTime型の値を返します。すなわち、toDateTimeのように動作します。

最初の引数がIntegerDateDate32DateTimeまたはDateTime64型で、2番目の引数が定数のフォーマット文字列、3番目の引数がオプションの定数タイムゾーン文字列の場合、String型の値を返します。すなわち、formatDateTimeInJodaSyntaxのように動作します。この場合、Joda datetimeフォーマットスタイルが使用されます。

構文

fromUnixTimestampInJodaSyntax(timestamp)
fromUnixTimestampInJodaSyntax(timestamp, format[, timezone])

引数

  • timestamp — Unixタイムスタンプまたは日時値。(U)Int* または Date または Date32 または DateTime または DateTime64
  • format — オプション。出力フォーマット用のJoda構文を使用した定数フォーマット文字列。String
  • timezone — オプション。定数タイムゾーン文字列。String

戻り値

1つの引数で呼び出された場合は日時を、2つまたは3つの引数で呼び出された場合は文字列を返します。DateTime または String

JodaフォーマットのUnixタイムスタンプを変換

SELECT fromUnixTimestampInJodaSyntax(1234334543, 'yyyy-MM-dd HH:mm:ss', 'UTC') AS DateTime
┌─DateTime────────────┐
│ 2009-02-11 06:42:23 │
└─────────────────────┘

makeDate

Introduced in: v22.6

次のいずれかからDateを作成します:

  • 年、月、日
  • 年と年の日

構文

makeDate(year, month, day)
makeDate(year, day_of_year)

引数

戻り値

提供された引数から構築されたDate値を返します。Date

年、月、日からの日付

SELECT makeDate(2023, 2, 28) AS date;
┌───────date─┐
│ 2023-02-28 │
└────────────┘

年と年の日からの日付

SELECT makeDate(2023, 42) AS date;
┌───────date─┐
│ 2023-02-11 │
└────────────┘

makeDate32

Introduced in: v22.6

次のいずれかからDate32を作成します:

  • 年、月、日
  • 年と年の日

構文

makeDate32(year, month, day)
makeDate32(year, day_of_year)

引数

戻り値

提供された引数から構築されたDate32値を返します。Date32

年、月、日からの日付32

SELECT makeDate(2023, 2, 28) AS date;
┌───────date─┐
│ 2023-02-28 │
└────────────┘

年と年の日からの日付32

SELECT makeDate(2023, 42) AS date;
┌───────date─┐
│ 2023-02-11 │
└────────────┘

makeDateTime

Introduced in: v22.6

年、月、日、時、分、秒からDateTimeを作成し、オプションでタイムゾーンを指定します。

構文

makeDateTime(year, month, day, hour, minute, second[, timezone])

引数

戻り値

提供された引数から構築されたDateTime値を返します。DateTime

年、月、日、時、分、秒からの日付時刻

SELECT makeDateTime(2023, 2, 28, 17, 12, 33) AS DateTime;
┌────────────DateTime─┐
│ 2023-02-28 17:12:33 │
└─────────────────────┘

makeDateTime64

Introduced in: v22.6

年、月、日、時、分、秒から、オプションで小数、精度、タイムゾーンを指定してDateTime64を作成します。

構文

makeDateTime64(year, month, day, hour, minute, second[, fraction[, precision[, timezone]]])

引数

戻り値

提供された引数から構築されたDateTime64値を返します。DateTime64

年、月、日、時、分、秒からの日付時刻64

SELECT makeDateTime64(2023, 5, 15, 10, 30, 45, 779, 5);
┌─makeDateTime64(2023, 5, 15, 10, 30, 45, 779, 5)─┐
│                       2023-05-15 10:30:45.00779 │
└─────────────────────────────────────────────────┘

monthName

Introduced in: v22.1

日付または日時値から月の名前を文字列として返します。

構文

monthName(datetime)

引数

戻り値

月の名前を返します。String

日付から月の名前を取得

WITH toDateTime('2021-04-14 11:22:33') AS date_value
SELECT monthName(date_value)
┌─monthName(date_value)─┐
│ April                 │
└───────────────────────┘

now

Introduced in: v1.1

クエリ解析の瞬間に現在の日付と時間を返します。この関数は定数式です。

構文

now([timezone])

引数

  • timezone — オプション。返される値のタイムゾーン名。String

戻り値

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

タイムゾーンなしのクエリ

SELECT now()
┌───────────────now()─┐
│ 2020-10-17 07:42:09 │
└─────────────────────┘

指定タイムゾーンのクエリ

SELECT now('Asia/Istanbul')
┌─now('Asia/Istanbul')─┐
│  2020-10-17 10:42:23 │
└──────────────────────┘

now64

Introduced in: v20.1

クエリ解析の瞬間にミリ秒精度の現在の日付と時間を返します。この関数は定数式です。

構文

now64([scale], [timezone])

引数

  • scale — オプション。ティックサイズ (精度): 10^-precision秒。妥当な範囲: [0 : 9]。通常は - 3 (デフォルト) (ミリ秒)、6 (マイクロ秒)、9 (ナノ秒) を使用します。UInt8
  • timezone — オプション。返される値のタイムゾーン名。String

戻り値

ミリ秒精度の現在の日付と時間を返します。DateTime64

デフォルトおよびカスタム精度とのクエリ

SELECT now64(), now64(9, 'Asia/Istanbul')
┌─────────────────now64()─┬─────now64(9, 'Asia/Istanbul')─┐
│ 2022-08-21 19:34:26.196 │ 2022-08-21 22:34:26.196542766 │
└─────────────────────────┴───────────────────────────────┘

nowInBlock

Introduced in: v22.8

各データブロックの処理の瞬間に現在の日付と時間を返します。関数nowとは異なり、定数式ではなく、長時間実行されるクエリの場合、それぞれのブロックで返される値が異なります。

長時間実行されるINSERT SELECTクエリで現在の時間を生成するためにこの関数を使用する意味があります。

構文

nowInBlock([timezone])

引数

  • timezone — オプション。返される値のタイムゾーン名。String

戻り値

各データブロックの処理の瞬間に現在の日付と時間を返します。DateTime

now()関数との違い

SELECT
    now(),
    nowInBlock(),
    sleep(1)
FROM numbers(3)
SETTINGS max_block_size = 1
FORMAT PrettyCompactMonoBlock
┌───────────────now()─┬────────nowInBlock()─┬─sleep(1)─┐
│ 2022-08-21 19:41:19 │ 2022-08-21 19:41:19 │        0 │
│ 2022-08-21 19:41:19 │ 2022-08-21 19:41:20 │        0 │
│ 2022-08-21 19:41:19 │ 2022-08-21 19:41:21 │        0 │
└─────────────────────┴─────────────────────┴──────────┘

nowInBlock64

Introduced in: v25.8

各データブロックの処理の瞬間にミリ秒精度の現在の日付と時間を返します。関数now64とは異なり、定数式ではなく、長時間実行されるクエリの場合、それぞれのブロックで返される値が異なります。

長時間実行されるINSERT SELECTクエリで現在の時間を生成するためにこの関数を使用する意味があります。

構文

nowInBlock([scale[, timezone]])

引数

  • scale — オプション。ティックサイズ (精度): 10^-precision秒。妥当な範囲: [0 : 9]。通常は - 3 (デフォルト) (ミリ秒)、6 (マイクロ秒)、9 (ナノ秒) を使用します。UInt8
  • timezone — オプション。返される値のタイムゾーン名。String

戻り値

ミリ秒精度の現在の日付と時間を返します。DateTime64

now64()関数との違い

SELECT
    now64(),
    nowInBlock64(),
    sleep(1)
FROM numbers(3)
SETTINGS max_block_size = 1
FORMAT PrettyCompactMonoBlock
┌─────────────────now64()─┬──────────nowInBlock64()─┬─sleep(1)─┐
│ 2025-07-29 17:07:29.526 │ 2025-07-29 17:07:29.534 │        0 │
│ 2025-07-29 17:07:29.526 │ 2025-07-29 17:07:30.535 │        0 │
│ 2025-07-29 17:07:29.526 │ 2025-07-29 17:07:31.535 │        0 │
└─────────────────────────┴─────────────────────────┴──────────┘

serverTimezone

Introduced in: v23.6

サーバーのタイムゾーンを返します。すなわち、timezone設定の値です。 関数が分散テーブルのコンテキストで実行されると、各シャードに関連する値を持つ通常のカラムを生成します。それ以外の場合、定数値を生成します。

構文

serverTimeZone()

引数

  • なし。

戻り値

サーバーのタイムゾーンをStringとして返します。

使用例

SELECT serverTimeZone()
┌─serverTimeZone()─┐
│ UTC              │
└──────────────────┘

subDate

Introduced in: v23.9

提供された日付、日時、または文字列エンコードされた日付または日時から指定された時間間隔を減算します。 減算の結果がデータ型の範囲外になる場合、結果は未定義です。

構文

subDate(datetime, interval)

引数

戻り値

datetimeからintervalを減算して得られた日付または日時を返します。Date または Date32 または DateTime または DateTime64

日付から間隔を減算

SELECT subDate(toDate('2018-01-01'), INTERVAL 3 YEAR)
┌─subDate(toDate('2018-01-01'), toIntervalYear(3))─┐
│                                       2015-01-01 │
└──────────────────────────────────────────────────┘

subtractDays

Introduced in: v1.1

指定した日数を日付、日時、または文字列エンコードされた日付または日時から減算します。

構文

subtractDays(datetime, num)

引数

戻り値

datetimeからnum日を減算した値を返します。Date または Date32 または DateTime または DateTime64

異なる日付タイプから日数を減算

WITH
    toDate('2024-01-01') AS date,
    toDateTime('2024-01-01 00:00:00') AS date_time,
    '2024-01-01 00:00:00' AS date_time_string
SELECT
    subtractDays(date, 31) AS subtract_days_with_date,
    subtractDays(date_time, 31) AS subtract_days_with_date_time,
    subtractDays(date_time_string, 31) AS subtract_days_with_date_time_string
┌─subtract_days_with_date─┬─subtract_days_with_date_time─┬─subtract_days_with_date_time_string─┐
│              2023-12-01 │          2023-12-01 00:00:00 │             2023-12-01 00:00:00.000 │
└─────────────────────────┴──────────────────────────────┴─────────────────────────────────────┘

代替のINTERVAL構文を使用

SELECT dateSub('1998-06-16'::Date, INTERVAL 10 day)
┌─minus(CAST('⋯valDay(10))─┐
│               1998-06-06 │
└──────────────────────────┘

subtractHours

Introduced in: v1.1

指定した時間数を日付、日時、または文字列エンコードされた日付または日時から減算します。

構文

subtractHours(datetime, num)

引数

戻り値

datetimeからnum時間を減算した値を返します。DateTime または DateTime64(3)

異なる日付タイプから時間を減算

WITH
    toDate('2024-01-01') AS date,
    toDateTime('2024-01-01 00:00:00') AS date_time,
    '2024-01-01 00:00:00' AS date_time_string
SELECT
    subtractHours(date, 12) AS subtract_hours_with_date,
    subtractHours(date_time, 12) AS subtract_hours_with_date_time,
    subtractHours(date_time_string, 12) AS subtract_hours_with_date_time_string
┌─subtract_hours_with_date─┬─subtract_hours_with_date_time─┬─subtract_hours_with_date_time_string─┐
│      2023-12-31 12:00:00 │           2023-12-31 12:00:00 │              2023-12-31 12:00:00.000 │
└──────────────────────────┴───────────────────────────────┴──────────────────────────────────────┘

代替のINTERVAL構文を使用

SELECT dateSub('1998-06-16'::Date, INTERVAL 10 hour)
┌─minus(CAST('⋯alHour(10))─┐
│      1998-06-15 14:00:00 │
└──────────────────────────┘

subtractInterval

Introduced in: v22.11

別の間隔または間隔のタプルに否定された間隔を加算します。

注意: 同じ型の間隔は単一の間隔に結合されます。例えば、toIntervalDay(2)toIntervalDay(1)が渡されると、結果は(1)となり、(2,1)ではありません。

構文

subtractInterval(interval_1, interval_2)

引数

戻り値

間隔のタプルを返します。Tuple(T)

間隔を減算

SELECT subtractInterval(INTERVAL 1 DAY, INTERVAL 1 MONTH);
SELECT subtractInterval((INTERVAL 1 DAY, INTERVAL 1 YEAR), INTERVAL 1 MONTH);
SELECT subtractInterval(INTERVAL 2 DAY, INTERVAL 1 DAY);
┌─subtractInterval(toIntervalDay(1), toIntervalMonth(1))─┐
│ (1,-1)                                                 │
└────────────────────────────────────────────────────────┘
┌─subtractInterval((toIntervalDay(1), toIntervalYear(1)), toIntervalMonth(1))─┐
│ (1,1,-1)                                                                    │
└─────────────────────────────────────────────────────────────────────────────┘
┌─subtractInterval(toIntervalDay(2), toIntervalDay(1))─┐
│ (1)                                                  │
└──────────────────────────────────────────────────────┘

subtractMicroseconds

Introduced in: v22.6

指定した微秒数を日時または文字列エンコードされた日時から減算します。

構文

subtractMicroseconds(datetime, num)

引数

戻り値

datetimeからnum微秒を減算した値を返します。DateTime64

異なる日時型から微秒を減算

WITH
    toDateTime('2024-01-01 00:00:00') AS date_time,
    '2024-01-01 00:00:00' AS date_time_string
SELECT
    subtractMicroseconds(date_time, 1000000) AS subtract_microseconds_with_date_time,
    subtractMicroseconds(date_time_string, 1000000) AS subtract_microseconds_with_date_time_string
┌─subtract_microseconds_with_date_time─┬─subtract_microseconds_with_date_time_string─┐
│           2023-12-31 23:59:59.000000 │                  2023-12-31 23:59:59.000000 │
└──────────────────────────────────────┴─────────────────────────────────────────────┘

代替のINTERVAL構文を使用

SELECT dateSub('1998-06-16'::DateTime, INTERVAL 10 microsecond)
┌─minus(CAST('1⋯osecond(10))─┐
│ 1998-06-15 23:59:59.999990 │
└────────────────────────────┘

subtractMilliseconds

Introduced in: v22.6

指定されたミリ秒数を時間付きの日付または文字列エンコードされた日付から減算します。

Syntax

subtractMilliseconds(datetime, num)

Arguments

Returned value

datetime から numミリ秒を減算した値を返します DateTime64

Examples

異なる日付時間型からミリ秒を減算する

WITH
    toDateTime('2024-01-01 00:00:00') AS date_time,
    '2024-01-01 00:00:00' AS date_time_string
SELECT
    subtractMilliseconds(date_time, 1000) AS subtract_milliseconds_with_date_time,
    subtractMilliseconds(date_time_string, 1000) AS subtract_milliseconds_with_date_time_string
┌─subtract_milliseconds_with_date_time─┬─subtract_milliseconds_with_date_time_string─┐
│              2023-12-31 23:59:59.000 │                     2023-12-31 23:59:59.000 │
└──────────────────────────────────────┴─────────────────────────────────────────────┘

代替の INTERVAL 構文を使用する

SELECT dateSub('1998-06-16'::DateTime, INTERVAL 10 millisecond)
┌─minus(CAST('⋯second(10))─┐
│  1998-06-15 23:59:59.990 │
└──────────────────────────┘

subtractMinutes

Introduced in: v1.1

指定された分数を日付、時間付きの日付または文字列エンコードされた日付から減算します。

Syntax

subtractMinutes(datetime, num)

Arguments

Returned value

datetime から num分を減算した値を返します DateTime または DateTime64(3)

Examples

異なる日付型から分を減算する

WITH
    toDate('2024-01-01') AS date,
    toDateTime('2024-01-01 00:00:00') AS date_time,
    '2024-01-01 00:00:00' AS date_time_string
SELECT
    subtractMinutes(date, 30) AS subtract_minutes_with_date,
    subtractMinutes(date_time, 30) AS subtract_minutes_with_date_time,
    subtractMinutes(date_time_string, 30) AS subtract_minutes_with_date_time_string
┌─subtract_minutes_with_date─┬─subtract_minutes_with_date_time─┬─subtract_minutes_with_date_time_string─┐
│        2023-12-31 23:30:00 │             2023-12-31 23:30:00 │                2023-12-31 23:30:00.000 │
└────────────────────────────┴─────────────────────────────────┴────────────────────────────────────────┘

代替の INTERVAL 構文を使用する

SELECT dateSub('1998-06-16'::Date, INTERVAL 10 minute)
┌─minus(CAST('⋯Minute(10))─┐
│      1998-06-15 23:50:00 │
└──────────────────────────┘

subtractMonths

Introduced in: v1.1

指定された月数を日付、時間付きの日付または文字列エンコードされた日付から減算します。

Syntax

subtractMonths(datetime, num)

Arguments

Returned value

datetime から num月を減算した値を返します Date または Date32 または DateTime または DateTime64

Examples

異なる日付型から月を減算する

WITH
    toDate('2024-01-01') AS date,
    toDateTime('2024-01-01 00:00:00') AS date_time,
    '2024-01-01 00:00:00' AS date_time_string
SELECT
    subtractMonths(date, 1) AS subtract_months_with_date,
    subtractMonths(date_time, 1) AS subtract_months_with_date_time,
    subtractMonths(date_time_string, 1) AS subtract_months_with_date_time_string
┌─subtract_months_with_date─┬─subtract_months_with_date_time─┬─subtract_months_with_date_time_string─┐
│                2023-12-01 │            2023-12-01 00:00:00 │               2023-12-01 00:00:00.000 │
└───────────────────────────┴────────────────────────────────┴───────────────────────────────────────┘

代替の INTERVAL 構文を使用する

SELECT dateSub('1998-06-16'::Date, INTERVAL 10 month)
┌─minus(CAST('⋯lMonth(10))─┐
│               1997-08-16 │
└──────────────────────────┘

subtractNanoseconds

Introduced in: v20.1

指定されたナノ秒数を時間付きの日付または文字列エンコードされた日付から減算します。

Syntax

subtractNanoseconds(datetime, num)

Arguments

Returned value

datetime から numナノ秒を減算した値を返します DateTime64

Examples

異なる日付時間型からナノ秒を減算する

WITH
    toDateTime('2024-01-01 00:00:00') AS date_time,
    '2024-01-01 00:00:00' AS date_time_string
SELECT
    subtractNanoseconds(date_time, 1000) AS subtract_nanoseconds_with_date_time,
    subtractNanoseconds(date_time_string, 1000) AS subtract_nanoseconds_with_date_time_string
┌─subtract_nanoseconds_with_date_time─┬─subtract_nanoseconds_with_date_time_string─┐
│       2023-12-31 23:59:59.999999000 │              2023-12-31 23:59:59.999999000 │
└─────────────────────────────────────┴────────────────────────────────────────────┘

代替の INTERVAL 構文を使用する

SELECT dateSub('1998-06-16'::DateTime, INTERVAL 10 nanosecond)
┌─minus(CAST('19⋯anosecond(10))─┐
│ 1998-06-15 23:59:59.999999990 │
└───────────────────────────────┘

subtractQuarters

Introduced in: v20.1

指定された四半期数を日付、時間付きの日付または文字列エンコードされた日付から減算します。

Syntax

subtractQuarters(datetime, num)

Arguments

  • datetime — 指定された四半期数を減算する対象の日付または時間付きの日付。 Date または Date32 または DateTime または DateTime64 または String
  • num — 減算する四半期数。 (U)Int* または Float*

Returned value

datetime から num四半期を減算した値を返します Date または Date32 または DateTime または DateTime64

Examples

異なる日付型から四半期を減算する

WITH
    toDate('2024-01-01') AS date,
    toDateTime('2024-01-01 00:00:00') AS date_time,
    '2024-01-01 00:00:00' AS date_time_string
SELECT
    subtractQuarters(date, 1) AS subtract_quarters_with_date,
    subtractQuarters(date_time, 1) AS subtract_quarters_with_date_time,
    subtractQuarters(date_time_string, 1) AS subtract_quarters_with_date_time_string
┌─subtract_quarters_with_date─┬─subtract_quarters_with_date_time─┬─subtract_quarters_with_date_time_string─┐
│                  2023-10-01 │              2023-10-01 00:00:00 │                 2023-10-01 00:00:00.000 │
└─────────────────────────────┴──────────────────────────────────┴─────────────────────────────────────────┘

代替の INTERVAL 構文を使用する

SELECT dateSub('1998-06-16'::Date, INTERVAL 10 quarter)
┌─minus(CAST('1⋯Quarter(10))─┐
│                1996-09-16 │
└───────────────────────────┘

subtractSeconds

Introduced in: v1.1

指定された秒数を日付、時間付きの日付または文字列エンコードされた日付から減算します。

Syntax

subtractSeconds(datetime, num)

Arguments

Returned value

datetime から num秒を減算した値を返します DateTime または DateTime64(3)

Examples

異なる日付型から秒を減算する

WITH
    toDate('2024-01-01') AS date,
    toDateTime('2024-01-01 00:00:00') AS date_time,
    '2024-01-01 00:00:00' AS date_time_string
SELECT
    subtractSeconds(date, 60) AS subtract_seconds_with_date,
    subtractSeconds(date_time, 60) AS subtract_seconds_with_date_time,
    subtractSeconds(date_time_string, 60) AS subtract_seconds_with_date_time_string
┌─subtract_seconds_with_date─┬─subtract_seconds_with_date_time─┬─subtract_seconds_with_date_time_string─┐
│        2023-12-31 23:59:00 │             2023-12-31 23:59:00 │                2023-12-31 23:59:00.000 │
└────────────────────────────┴─────────────────────────────────┴────────────────────────────────────────┘

代替の INTERVAL 構文を使用する

SELECT dateSub('1998-06-16'::Date, INTERVAL 10 second)
┌─minus(CAST('⋯Second(10))─┐
│      1998-06-15 23:59:50 │
└──────────────────────────┘

subtractTupleOfIntervals

Introduced in: v22.11

日付または時間付きの日付からインターバルのタプルを連続的に減算します。

Syntax

subtractTupleOfIntervals(datetime, intervals)

Arguments

  • datetime — インターバルを減算する対象の日付または時間付きの日付。 Date または Date32 または DateTime または DateTime64
  • intervalsdatetime から減算するインターバルのタプル。 Tuple(Interval)

Returned value

減算された intervals を含む日付を返します Date または Date32 または DateTime または DateTime64

Examples

日付からインターバルのタプルを減算する

WITH toDate('2018-01-01') AS date SELECT subtractTupleOfIntervals(date, (INTERVAL 1 DAY, INTERVAL 1 YEAR))
┌─subtractTupl⋯alYear(1)))─┐
│               2016-12-31 │
└──────────────────────────┘

subtractWeeks

Introduced in: v1.1

指定された週数を日付、時間付きの日付または文字列エンコードされた日付から減算します。

Syntax

subtractWeeks(datetime, num)

Arguments

Returned value

datetime から num週を減算した値を返します Date または Date32 または DateTime または DateTime64

Examples

異なる日付型から週を減算する

WITH
    toDate('2024-01-01') AS date,
    toDateTime('2024-01-01 00:00:00') AS date_time,
    '2024-01-01 00:00:00' AS date_time_string
SELECT
    subtractWeeks(date, 1) AS subtract_weeks_with_date,
    subtractWeeks(date_time, 1) AS subtract_weeks_with_date_time,
    subtractWeeks(date_time_string, 1) AS subtract_weeks_with_date_time_string
┌─subtract_weeks_with_date─┬─subtract_weeks_with_date_time─┬─subtract_weeks_with_date_time_string─┐
│               2023-12-25 │           2023-12-25 00:00:00 │              2023-12-25 00:00:00.000 │
└──────────────────────────┴───────────────────────────────┴──────────────────────────────────────┘

代替の INTERVAL 構文を使用する

SELECT dateSub('1998-06-16'::Date, INTERVAL 10 week)
┌─minus(CAST('⋯alWeek(10))─┐
│               1998-04-07 │
└──────────────────────────┘

subtractYears

Introduced in: v1.1

指定された年数を日付、時間付きの日付または文字列エンコードされた日付から減算します。

Syntax

subtractYears(datetime, num)

Arguments

Returned value

datetime から num年を減算した値を返します Date または Date32 または DateTime または DateTime64

Examples

異なる日付型から年を減算する

WITH
    toDate('2024-01-01') AS date,
    toDateTime('2024-01-01 00:00:00') AS date_time,
    '2024-01-01 00:00:00' AS date_time_string
SELECT
    subtractYears(date, 1) AS subtract_years_with_date,
    subtractYears(date_time, 1) AS subtract_years_with_date_time,
    subtractYears(date_time_string, 1) AS subtract_years_with_date_time_string
┌─subtract_years_with_date─┬─subtract_years_with_date_time─┬─subtract_years_with_date_time_string─┐
│               2023-01-01 │           2023-01-01 00:00:00 │              2023-01-01 00:00:00.000 │
└──────────────────────────┴───────────────────────────────┴──────────────────────────────────────┘

代替の INTERVAL 構文を使用する

SELECT dateSub('1998-06-16'::Date, INTERVAL 10 year)
┌─minus(CAST('⋯alYear(10))─┐
│               1988-06-16 │
└──────────────────────────┘

timeDiff

Introduced in: v23.4

指定された unit 境界を越えた回数を startdateenddate の間で返します。 差分は相対単位を使用して計算されます。たとえば、2021-12-29 と 2022-01-01 の間の違いは、単位が日であれば 3 日( [toRelativeDayNum](#toRelativeDayNum)を参照)、単位が月であれば 1 ヶ月( [toRelativeMonthNum](#toRelativeMonthNum)を参照)、単位が年であれば 1 年( [toRelativeYearNum](#toRelativeYearNum)を参照)となります。

単位が week の場合、timeDiff は週が月曜日から始まると仮定します。 この動作は、週がデフォルトで日曜日から始まる toWeek() 関数とは異なることに注意してください。

代替としては、 [timeDiff](#timeDiff)に対して、[age](#age)関数があります。

Syntax

date_diff(unit, startdate, enddate, [timezone])

Arguments

  • unit — 結果のインターバルの種類。
UnitPossible values
nanosecondnanosecond, nanoseconds, ns
microsecondmicrosecond, microseconds, us, u
millisecondmillisecond, milliseconds, ms
secondsecond, seconds, ss, s
minuteminute, minutes, mi, n
hourhour, hours, hh, h
dayday, days, dd, d
weekweek, weeks, wk, ww
monthmonth, months, mm, m
quarterquarter, quarters, qq, q
yearyear, years, yyyy, yy
  • startdate — 減算する最初の時間値(被減数)。 Date または Date32 または DateTime または DateTime64
  • enddate — 減算される第二の時間値(減数)。 Date または Date32 または DateTime または DateTime64
  • timezone — オプション。タイムゾーン名。指定された場合、startdateenddate の両方に適用されます。指定されていない場合、startdateenddate のタイムゾーンが使用されます。同じでない場合、結果は不明です。 String

Returned value

enddatestartdate の差を unit で表します。 Int64

Examples

時間での日付差を計算する

SELECT timeDiff('hour', toDateTime('2018-01-01 22:00:00'), toDateTime('2018-01-02 23:00:00')) AS res
┌─res─┐
│  25 │
└─────┘

異なる単位での日付差を計算する

SELECT
    toDate('2022-01-01') AS e,
    toDate('2021-12-29') AS s,
    timeDiff('day', s, e) AS day_diff,
    timeDiff('month', s, e) AS month_diff,
    timeDiff('year', s, e) AS year_diff
┌──────────e─┬──────────s─┬─day_diff─┬─month_diff─┬─year_diff─┐
│ 2022-01-01 │ 2021-12-29 │        3 │          1 │         1 │
└────────────┴────────────┴──────────┴────────────┴───────────┘

timeSlot

Introduced in: v1.1

時間を半時間の長さのインターバルの開始に丸めます。

注記

この関数は、拡張型 Date32DateTime64 の値を引数に取ることができますが、 通常の範囲外の時間(1970 年から 2149 年の間の Date / 2106 年の DateTime)を渡すと不正確な結果が得られます。

Syntax

timeSlot(time[, time_zone])

Arguments

  • time — 半時間の長さのインターバルの開始に丸めるべき時間。 DateTime または Date32 または DateTime64
  • time_zone — オプション。タイムゾーンを表す文字列型の定数値または式。 String

Returned value

半時間の長さのインターバルの開始に丸められた時間を返します。 DateTime

Examples

半時間のインターバルに時間を丸める

SELECT timeSlot(toDateTime('2000-01-02 03:04:05', 'UTC'))
┌─timeSlot(toDateTime('2000-01-02 03:04:05', 'UTC'))─┐
│                                2000-01-02 03:00:00 │
└────────────────────────────────────────────────────┘

timeSlots

Introduced in: v1.1

StartTime から始まり Duration 秒間続く時間インターバルのために、指定された時間の間に丸められたポイントの配列を返します。 Size はオプションのパラメータで、デフォルトでは 1800(30 分)に設定されています。

これは、対応するセッション内のページビューを検索する際などに必要です。

DateTime64 の場合、戻り値のスケールは StartTime のスケールと異なる場合があります。すべての指定された引数の中で最高のスケールが取られます。

Syntax

timeSlots(StartTime, Duration[, Size])

Arguments

  • StartTime — インターバルの開始時間。 DateTime または DateTime64
  • Duration — 秒単位のインターバルの持続時間。 UInt32 または DateTime64
  • Size — オプション。秒単位の時間スロットのサイズ。デフォルトは 1800(30 分)。 UInt32 または DateTime64

Returned value

DateTime/DateTime64 の配列を返します(戻り値の型は StartTime の型に一致します)。DateTime64の場合、戻り値のスケールは StartTime のスケールと異なる場合があります。すべての指定された引数の中で最高のスケールが取られます。 Array(DateTime) または Array(DateTime64)

Examples

インターバルのための時間スロットを生成する

SELECT timeSlots(toDateTime('2012-01-01 12:20:00'), toUInt32(600));
SELECT timeSlots(toDateTime('1980-12-12 21:01:02', 'UTC'), toUInt32(600), 299);
SELECT timeSlots(toDateTime64('1980-12-12 21:01:02.1234', 4, 'UTC'), toDecimal64(600.1, 1), toDecimal64(299, 0))
┌─timeSlots(toDateTime('2012-01-01 12:20:00'), toUInt32(600))─┐
│ ['2012-01-01 12:00:00','2012-01-01 12:30:00']               │
└─────────────────────────────────────────────────────────────┘
┌─timeSlots(toDateTime('1980-12-12 21:01:02', 'UTC'), toUInt32(600), 299)─┐
│ ['1980-12-12 20:56:13','1980-12-12 21:01:12','1980-12-12 21:06:11']     │
└─────────────────────────────────────────────────────────────────────────┘
┌─timeSlots(toDateTime64('1980-12-12 21:01:02.1234', 4, 'UTC'), toDecimal64(600.1, 1), toDecimal64(299, 0))─┐
│ ['1980-12-12 20:56:13.0000','1980-12-12 21:01:12.0000','1980-12-12 21:06:11.0000']                        │
└───────────────────────────────────────────────────────────────────────────────────────────────────────────┘

timestamp

Introduced in: v23.9

最初の引数 exprDateTime64(6) 型に変換します。 二番目の引数 expr_time が指定されている場合、その指定された時間を変換された値に追加します。

Syntax

timestamp(expr[, expr_time])

Arguments

  • expr — 日付または時間付きの日付。 String
  • expr_time — オプション。変換された値に追加される時間。 String

Returned value

expr の変換された値、または追加された時間のある expr を返します DateTime64(6)

Examples

日付文字列を DateTime64(6) に変換する

SELECT timestamp('2023-12-31') AS ts;
┌─────────────────────────ts─┐
│ 2023-12-31 00:00:00.000000 │
└────────────────────────────┘

日付文字列に時間を追加する

SELECT timestamp('2023-12-31 12:00:00', '12:00:00.11') AS ts;
┌─────────────────────────ts─┐
│ 2024-01-01 00:00:00.110000 │
└────────────────────────────┘

timezone

Introduced in: v21.4

現在のセッションのタイムゾーン名を返すか、タイムゾーンオフセットや名前を標準のタイムゾーン名に変換します。

Syntax

timezone()

Arguments

  • なし。

Returned value

標準のタイムゾーン名を String として返します。

Examples

使用例

SELECT timezone()
┌─timezone()───────┐
│ Europe/Amsterdam │
└──────────────────┘

timezoneOf

Introduced in: v21.4

DateTime または DateTime64 値のタイムゾーン名を返します。

Syntax

timeZoneOf(datetime)

Arguments

  • datetime — 型の値。 DateTime または DateTime64
  • timezone — オプション。datetime 値のタイムゾーンを変換するためのタイムゾーン名。 String

Returned value

datetime のタイムゾーン名を返します String

Examples

使用例

SELECT timezoneOf(now());
┌─timezoneOf(now())─┐
│ Europe/Amsterdam  │
└───────────────────┘

timezoneOffset

Introduced in: v21.6

UTC からのタイムゾーンオフセットを秒単位で返します。 この関数は、指定された日時でのサマータイムや歴史的なタイムゾーンの変更を考慮に入れます。

Syntax

timeZoneOffset(datetime)

Arguments

  • datetime — タイムゾーンオフセットを取得するための DateTime 値。 DateTime または DateTime64

Returned value

UTC からのオフセットを秒単位で返します Int32

Examples

使用例

SELECT toDateTime('2021-04-21 10:20:30', 'America/New_York') AS Time,
toTypeName(Time) AS Type,
timeZoneOffset(Time) AS Offset_in_seconds,
(Offset_in_seconds / 3600) AS Offset_in_hours;
┌────────────────Time─┬─Type─────────────────────────┬─Offset_in_seconds─┬─Offset_in_hours─┐
│ 2021-04-21 10:20:30 │ DateTime('America/New_York') │            -14400 │              -4 │
└─────────────────────┴──────────────────────────────┴───────────────────┴─────────────────┘

toDayOfMonth

Introduced in: v1.1

Date または DateTime の月の日(1-31)を返します。

Syntax

toDayOfMonth(datetime)

Arguments

  • datetime — 月の日を取得するための対象の日付または時間付きの日付。 Date または Date32 または DateTime または DateTime64

Returned value

指定された日付/時間の月の日を返します UInt8

Examples

使用例

SELECT toDayOfMonth(toDateTime('2023-04-21 10:20:30'))
┌─toDayOfMonth(toDateTime('2023-04-21 10:20:30'))─┐
│                                              21 │
└─────────────────────────────────────────────────┘

toDayOfWeek

Introduced in: v1.1

Date または DateTime 値の週内の日の番号を返します。

toDayOfWeek() の二引数形式は、週の開始日を月曜日または日曜日に指定し、返される値の範囲を 0 から 6 まで、または 1 から 7 まで指定できます。

Mode週の始まり範囲
0月曜日1-7: 月曜日 = 1、火曜日 = 2、...、日曜日 = 7
1月曜日0-6: 月曜日 = 0、火曜日 = 1、...、日曜日 = 6
2日曜日0-6: 日曜日 = 0、月曜日 = 1、...、土曜日 = 6
3日曜日1-7: 日曜日 = 1、月曜日 = 2、...、土曜日 = 7

Syntax

toDayOfWeek(datetime[, mode[, timezone]])

Arguments

  • datetime — 週内の日の番号を取得するための日付または時間付きの日付。 Date または Date32 または DateTime または DateTime64
  • mode — オプション。週モードを指定する整数(0-3)。省略した場合は0がデフォルト。 UInt8
  • timezone — オプション。変換に使用するタイムゾーン。 String

Returned value

指定された Date または DateTime の週の曜日を返します UInt8

Examples

使用例

-- The following date is April 21, 2023, which was a Friday:
SELECT
    toDayOfWeek(toDateTime('2023-04-21')),
    toDayOfWeek(toDateTime('2023-04-21'), 1)
┌─toDayOfWeek(toDateTime('2023-04-21'))─┬─toDayOfWeek(toDateTime('2023-04-21'), 1)─┐
│                                     5 │                                        4 │
└───────────────────────────────────────┴──────────────────────────────────────────┘

toDayOfYear

Introduced in: v18.4

Date または DateTime 値の年間の番号(1-366)を返します。

Syntax

toDayOfYear(datetime)

Arguments

  • datetime — 年間の番号を取得するための日付または時間付きの日付。 Date または Date32 または DateTime または DateTime64

Returned value

指定された日付または時間の年間の日を返します UInt16

Examples

使用例

SELECT toDayOfYear(toDateTime('2023-04-21 10:20:30'))
┌─toDayOfYear(toDateTime('2023-04-21 10:20:30'))─┐
│                                            111 │
└────────────────────────────────────────────────┘

toDaysSinceYearZero

Introduced in: v23.9

与えられた日付に対して、1 月 1 日 0000 から経過した日数を返します、これはISO 8601 で定義された先行グレゴリオ暦に基づいています。

計算は、MySQL の [TO_DAYS](https://dev.mysql.com/doc/refman/8.0/en/date-and-time-functions.html#function_to-days)関数と同じです。

Syntax

toDaysSinceYearZero(date[, time_zone])

Arguments

  • date — 年ゼロから経過した日数を計算するための日付または時間付きの日付。 Date または Date32 または DateTime または DateTime64
  • time_zone — タイムゾーン。 String

Returned value

日付 0000-01-01 から経過した日数を返します。 UInt32

Examples

ゼロ年からの経過日数を計算する

SELECT toDaysSinceYearZero(toDate('2023-09-08'))
┌─toDaysSinceYearZero(toDate('2023-09-08')))─┐
│                                     713569 │
└────────────────────────────────────────────┘

toHour

Introduced in: v1.1

DateTime または DateTime64 値の時間 コンポーネント(0-23)を返します。

Syntax

toHour(datetime)

Arguments

  • datetime — 時間を取得するための日付または時間付きの日付。 DateTime または DateTime64

Returned value

datetime の時間(0-23)を返します。 UInt8

Examples

使用例

SELECT toHour(toDateTime('2023-04-21 10:20:30'))
┌─toHour(toDateTime('2023-04-21 10:20:30'))─┐
│                                        10 │
└───────────────────────────────────────────┘

toISOYear

Introduced in: v18.4

日付または時間付きの日付を ISO 年番号に変換します。

Syntax

toISOYear(datetime)

Arguments

Returned value

ISO 年番号に変換された入力値を返します。 UInt16

Examples

日付値から ISO 年を取得する

SELECT
toISOYear(toDate('2024/10/02')) as year1,
toISOYear(toDateTime('2024-10-02 01:30:00')) as year2
┌─week1─┬─week2─┐
│    40 │    40 │
└───────┴───────┘

toLastDayOfMonth

Introduced in: v1.1

日付または時間付きの日付を月の最終日に丸めます。

注記

戻り値の型は、enable_extended_results_for_datetime_functionsを設定することによって構成できます。

Syntax

toLastDayOfMonth(value)

Arguments

  • value — 月の最終日に丸める対象の日付または時間付きの日付。 Date または Date32 または DateTime または DateTime64

Returned value

指定された日付または時間に対する月の最終日を返します。 Date

Examples

月の最終日に丸める

SELECT toLastDayOfMonth(toDateTime('2023-04-21 10:20:30'))
┌─toLastDayOfMonth(toDateTime('2023-04-21 10:20:30'))─┐
│                                          2023-04-30 │
└─────────────────────────────────────────────────────┘

toLastDayOfWeek

Introduced in: v23.5

日付または時間付きの日付を最も近い土曜日または日曜日に丸めます。

注記

戻り値の型は、enable_extended_results_for_datetime_functionsを設定することによって構成できます。

Syntax

toLastDayOfWeek(datetime[, mode[, timezone]])

Arguments

  • datetime — 変換する日付または時間付きの日付。 Date または DateTime または Date32 または DateTime64
  • modetoWeek() 関数に記載されているように、一週間の始まりを決定します。デフォルトは 0UInt8
  • timezone — オプション。変換に使用するタイムゾーン。指定しない場合はサーバーのタイムゾーンが使用されます。 String

Returned value

指定された日付に基づき、最も近い土曜日または日曜日の日付を返します。 Date または Date32 または DateTime または DateTime64

Examples

最も近い土曜日または日曜日に丸める

SELECT
    toLastDayOfWeek(toDateTime('2023-04-21 10:20:30')), /* a Friday */
    toLastDayOfWeek(toDateTime('2023-04-21 10:20:30'), 1), /* a Friday */
    toLastDayOfWeek(toDate('2023-04-23')), /* a Sunday */
    toLastDayOfWeek(toDate('2023-04-23'), 1) /* a Sunday */
FORMAT Vertical
Row 1:
──────
toLastDayOfWeek(toDateTime('2023-04-21 10:20:30')):      2023-04-23
toLastDayOfWeek(toDateTime('2023-04-21 10:20:30'), 1):   2023-04-22
toLastDayOfWeek(toDate('2023-04-23')):                   2023-04-23
toLastDayOfWeek(toDate('2023-04-23'), 1):                2023-04-23

toMillisecond

Introduced in: v24.2

DateTime または DateTime64 値のミリ秒コンポーネント(0-999)を返します。

Syntax

toMillisecond(datetime)

Arguments

  • datetime — ミリ秒を取得するための時間付きの日付。 DateTime または DateTime64

Returned value

datetime の分のミリ秒を返します(0 - 59)。 UInt16

Examples

使用例

SELECT toMillisecond(toDateTime64('2023-04-21 10:20:30.456', 3));
┌──toMillisecond(toDateTime64('2023-04-21 10:20:30.456', 3))─┐
│                                                        456 │
└────────────────────────────────────────────────────────────┘

toMinute

Introduced in: v1.1

Date または DateTime 値の分コンポーネント(0-59)を返します。

Syntax

toMinute(datetime)

Arguments

  • datetime — 分を取得するための時間付きの日付。 DateTime または DateTime64

Returned value

datetime の時間の分を返します(0 - 59)。 UInt8

Examples

使用例

SELECT toMinute(toDateTime('2023-04-21 10:20:30'))
┌─toMinute(toDateTime('2023-04-21 10:20:30'))─┐
│                                          20 │
└─────────────────────────────────────────────┘

toModifiedJulianDay

Introduced in: v21.1

先行グレゴリオ暦の日付をテキスト形式 YYYY-MM-DD に変換し、修正ジュリアン日の数に Int32 で返します。この関数は 0000-01-01 から 9999-12-31 までの日付をサポートします。引数が日付として解析できない場合、または日付が無効な場合は例外をスローします。

Syntax

toModifiedJulianDay(date)

Arguments

Returned value

修正ジュリアン日番号を返します。 Int32

Examples

日付を修正ジュリアン日に変換する

SELECT toModifiedJulianDay('2020-01-01')
┌─toModifiedJulianDay('2020-01-01')─┐
│                             58849 │
└───────────────────────────────────┘

toModifiedJulianDayOrNull

Introduced in: v21.1

[toModifiedJulianDay()](#toModifiedJulianDay)に似ていますが、例外を発生させるのではなく、NULL を返します。

Syntax

toModifiedJulianDayOrNull(date)

Arguments

Returned value

有効な date に対する修正ジュリアン日番号を返す、そうでない場合は null を返します。 Nullable(Int32)

Examples

NULL 処理を含む修正ジュリアン日への日付の変換

SELECT toModifiedJulianDayOrNull('2020-01-01');
SELECT toModifiedJulianDayOrNull('0000-00-00'); -- invalid date, returns NULL
┌─toModifiedJu⋯020-01-01')─┐
│                    58849 │
└──────────────────────────┘
┌─toModifiedJu⋯000-00-00')─┐
│                     ᴺᵁᴸᴸ │
└──────────────────────────┘

toMonday

Introduced in: v1.1

日付または時間付きの日付をその週の月曜日に丸めます。日付を返します。

注記

戻り値の型は、enable_extended_results_for_datetime_functionsを設定することによって構成できます。

Syntax

toMonday(value)

Arguments

  • value — 週の月曜日に丸める対象の日付または時間付きの日付。 Date または Date32 または DateTime または DateTime64

Returned value

指定された日付または時間に対する同じ週の月曜日の日付を返します。 Date

Examples

週の月曜日に丸める

SELECT
toMonday(toDateTime('2023-04-21 10:20:30')), -- A Friday
toMonday(toDate('2023-04-24'));              -- Already a Monday
┌─toMonday(toDateTime('2023-04-21 10:20:30'))─┬─toMonday(toDate('2023-04-24'))─┐
│                                  2023-04-17 │                     2023-04-24 │
└─────────────────────────────────────────────┴────────────────────────────────┘

toMonth

Introduced in: v1.1

Date または DateTime 値の月コンポーネント(1-12)を返します。

Syntax

toMonth(datetime)

Arguments

  • datetime — 月を取得するための日付または時間付きの日付。 Date または Date32 または DateTime または DateTime64

Returned value

指定された日付/時間の月を返します UInt8

Examples

使用例

SELECT toMonth(toDateTime('2023-04-21 10:20:30'))
┌─toMonth(toDateTime('2023-04-21 10:20:30'))─┐
│                                          4 │
└────────────────────────────────────────────┘

toMonthNumSinceEpoch

Introduced in: v25.3

1970 年から経過した月数を返します。

Syntax

toMonthNumSinceEpoch(date)

Arguments

Returned value

正の整数

Examples

SELECT toMonthNumSinceEpoch(toDate('2024-10-01'))
657

toQuarter

Introduced in: v1.1

与えられた Date または DateTime 値の四半期(1-4)を返します。

Syntax

toQuarter(datetime)

Arguments

  • datetime — 年の四半期を取得するための日付または時間付きの日付。 Date または Date32 または DateTime または DateTime64

Returned value

指定された日付/時間の年の四半期を返します UInt8

Examples

使用例

SELECT toQuarter(toDateTime('2023-04-21 10:20:30'))
┌─toQuarter(toDateTime('2023-04-21 10:20:30'))─┐
│                                            2 │
└──────────────────────────────────────────────┘

toRelativeDayNum

Introduced in: v1.1

特定の過去の固定点から経過した日数に、日付または時間付き日付を変換します。 正確な時点は実装の詳細であるため、この関数は単独で使用することを意図していません。 この関数の主な目的は、2つの日付または時間付き日付間の日数の差を計算することです。例えば、 toRelativeDayNum(dt1) - toRelativeDayNum(dt2)です。

Syntax

toRelativeDayNum(date)

Arguments

Returned value

固定参照点からの経過日数を返します。 UInt32

Examples

相対日数を取得

SELECT toRelativeDayNum(toDate('2023-04-01')) - toRelativeDayNum(toDate('2023-01-01'))
┌─minus(toRela⋯3-01-01')))─┐
│                       90 │
└──────────────────────────┘

toRelativeHourNum

Introduced in: v1.1

特定の過去の固定点から経過した時間数に、日付または時間付き日付を変換します。 正確な時点は実装の詳細であるため、この関数は単独で使用することを意図していません。 この関数の主な目的は、2つの日付または時間付き日付間の時間の差を計算することです。例えば、 toRelativeHourNum(dt1) - toRelativeHourNum(dt2)です。

Syntax

toRelativeHourNum(date)

Arguments

Returned value

固定参照点からの経過時間数を返します。 UInt32

Examples

相対時間数を取得

SELECT toRelativeHourNum(toDateTime('2023-01-01 12:00:00')) - toRelativeHourNum(toDateTime('2023-01-01 00:00:00')) AS hours_difference
┌─hours_difference─┐
│               12 │
└──────────────────┘

toRelativeMinuteNum

Introduced in: v1.1

特定の過去の固定点から経過した分数に、日付または時間付き日付を変換します。 正確な時点は実装の詳細であるため、この関数は単独で使用することを意図していません。 この関数の主な目的は、2つの日付または時間付き日付間の分の差を計算することです。例えば、 toRelativeMinuteNum(dt1) - toRelativeMinuteNum(dt2)です。

Syntax

toRelativeMinuteNum(date)

Arguments

Returned value

固定参照点からの経過分数を返します。 UInt32

Examples

相対分数を取得

SELECT toRelativeMinuteNum(toDateTime('2023-01-01 00:30:00')) - toRelativeMinuteNum(toDateTime('2023-01-01 00:00:00')) AS minutes_difference
┌─minutes_difference─┐
│                 30 │
└────────────────────┘

toRelativeMonthNum

Introduced in: v1.1

特定の過去の固定点から経過した月数に、日付または時間付き日付を変換します。 正確な時点は実装の詳細であるため、この関数は単独で使用することを意図していません。 この関数の主な目的は、2つの日付または時間付き日付間の月の差を計算することです。例えば、 toRelativeMonthNum(dt1) - toRelativeMonthNum(dt2)です。

Syntax

toRelativeMonthNum(date)

Arguments

Returned value

固定参照点からの経過月数を返します。 UInt32

Examples

相対月数を取得

SELECT toRelativeMonthNum(toDate('2023-04-01')) - toRelativeMonthNum(toDate('2023-01-01')) AS months_difference
┌─months_difference─┐
│                 3 │
└───────────────────┘

toRelativeQuarterNum

Introduced in: v1.1

特定の過去の固定点から経過した四半期数に、日付または時間付き日付を変換します。 正確な時点は実装の詳細であるため、この関数は単独で使用することを意図していません。 この関数の主な目的は、2つの日付または時間付き日付間の四半期の差を計算することです。例えば、 toRelativeQuarterNum(dt1) - toRelativeQuarterNum(dt2)です。

Syntax

toRelativeQuarterNum(date)

Arguments

Returned value

固定参照点からの経過四半期数を返します。 UInt32

Examples

相対四半期数を取得

SELECT toRelativeQuarterNum(toDate('2023-04-01')) - toRelativeQuarterNum(toDate('2023-01-01')) AS quarters_difference
┌─quarters_difference─┐
│                   1 │
└─────────────────────┘

toRelativeSecondNum

Introduced in: v1.1

特定の過去の固定点から経過した秒数に、日付または時間付き日付を変換します。 正確な時点は実装の詳細であるため、この関数は単独で使用することを意図していません。 この関数の主な目的は、2つの日付または時間付き日付間の秒の差を計算することです。例えば、 toRelativeSecondNum(dt1) - toRelativeSecondNum(dt2)です。

Syntax

toRelativeSecondNum(date)

Arguments

Returned value

固定参照点からの経過秒数を返します。 UInt32

Examples

相対秒数を取得

SELECT toRelativeSecondNum(toDateTime('2023-01-01 00:01:00')) - toRelativeSecondNum(toDateTime('2023-01-01 00:00:00')) AS seconds_difference
┌─seconds_difference─┐
│                 60 │
└────────────────────┘

toRelativeWeekNum

Introduced in: v1.1

特定の過去の固定点から経過した週数に、日付または時間付き日付を変換します。 正確な時点は実装の詳細であるため、この関数は単独で使用することを意図していません。 この関数の主な目的は、2つの日付または時間付き日付間の週の差を計算することです。例えば、 toRelativeWeekNum(dt1) - toRelativeWeekNum(dt2)です。

Syntax

toRelativeWeekNum(date)

Arguments

Returned value

固定参照点からの経過週数を返します。 UInt32

Examples

相対週数を取得

SELECT toRelativeWeekNum(toDate('2023-01-08')) - toRelativeWeekNum(toDate('2023-01-01')) AS weeks_difference
┌─weeks_difference─┐
│                1 │
└──────────────────┘

toRelativeYearNum

Introduced in: v1.1

特定の過去の固定点から経過した年数に、日付または時間付き日付を変換します。 正確な時点は実装の詳細であるため、この関数は単独で使用することを意図していません。 この関数の主な目的は、2つの日付または時間付き日付間の年の差を計算することです。例えば、 toRelativeYearNum(dt1) - toRelativeYearNum(dt2)です。

Syntax

toRelativeYearNum(date)

Arguments

Returned value

固定参照点からの経過年数を返します。 UInt16

Examples

相対年数を取得

SELECT toRelativeYearNum('2010-10-01'::DateTime) - toRelativeYearNum('2000-01-01'::DateTime)
┌─minus(toRela⋯ateTime')))─┐
│                       10 │
└──────────────────────────┘

toSecond

Introduced in: v1.1

DateTimeまたはDateTime64の値の秒数コンポーネント(0-59)を返します。

Syntax

toSecond(datetime)

Arguments

  • datetime — 秒を取得するための日付と時間。 DateTime または DateTime64

Returned value

datetimeの分の秒を返します(0 - 59)。 UInt8

Examples

使用例

SELECT toSecond(toDateTime('2023-04-21 10:20:30'))
┌─toSecond(toDateTime('2023-04-21 10:20:30'))─┐
│                                          30 │
└─────────────────────────────────────────────┘

toStartOfDay

Introduced in: v1.1

時間付き日付を日の開始に切り下げます。

注記

戻り値の型は、enable_extended_results_for_datetime_functionsを設定することで構成できます。

Syntax

toStartOfDay(datetime)

Arguments

  • datetime — 切り下げる日付または時間付き日付。 Date または DateTime

Returned value

日の開始に切り下げられた時間付き日付を返します。 Date または DateTime または Date32 または DateTime64

Examples

日の開始に切り下げる

SELECT toStartOfDay(toDateTime('2023-04-21 10:20:30'))
┌─toStartOfDay(toDateTime('2023-04-21 10:20:30'))─┐
│                             2023-04-21 00:00:00 │
└─────────────────────────────────────────────────┘

toStartOfFifteenMinutes

Introduced in: v1.1

時間付き日付を15分の間隔の開始に切り下げます。

注記

戻り値の型は、enable_extended_results_for_datetime_functionsを設定することで構成できます。

Syntax

toStartOfFifteenMinutes(datetime)

Arguments

  • datetime — 切り下げる日付または時間付き日付。 DateTime または DateTime64

Returned value

最近の15分間隔の開始に切り下げられた時間付き日付を返します。 DateTime または DateTime64

Examples

SELECT
    toStartOfFifteenMinutes(toDateTime('2023-04-21 10:17:00')),
    toStartOfFifteenMinutes(toDateTime('2023-04-21 10:20:00')),
    toStartOfFifteenMinutes(toDateTime('2023-04-21 10:23:00'))
FORMAT Vertical
Row 1:
──────
toStartOfFifteenMinutes(toDateTime('2023-04-21 10:17:00')): 2023-04-21 10:15:00
toStartOfFifteenMinutes(toDateTime('2023-04-21 10:20:00')): 2023-04-21 10:15:00
toStartOfFifteenMinutes(toDateTime('2023-04-21 10:23:00')): 2023-04-21 10:15:00

toStartOfFiveMinutes

Introduced in: v22.6

時間付き日付を最近の5分間隔の開始に切り下げます。

注記

戻り値の型は、enable_extended_results_for_datetime_functionsを設定することで構成できます。

Syntax

toStartOfFiveMinutes(datetime)

Arguments

Returned value

最近の5分間隔の開始に切り下げられた時間付き日付を返します。 DateTime または DateTime64

Examples

SELECT
    toStartOfFiveMinutes(toDateTime('2023-04-21 10:17:00')),
    toStartOfFiveMinutes(toDateTime('2023-04-21 10:20:00')),
    toStartOfFiveMinutes(toDateTime('2023-04-21 10:23:00'))
FORMAT Vertical
Row 1:
──────
toStartOfFiveMinutes(toDateTime('2023-04-21 10:17:00')): 2023-04-21 10:15:00
toStartOfFiveMinutes(toDateTime('2023-04-21 10:20:00')): 2023-04-21 10:20:00
toStartOfFiveMinutes(toDateTime('2023-04-21 10:23:00')): 2023-04-21 10:20:00

toStartOfHour

Introduced in: v1.1

時間付き日付を時間の開始に切り下げます。

注記

戻り値の型は、enable_extended_results_for_datetime_functionsを設定することで構成できます。

Syntax

toStartOfHour(datetime)

Arguments

Returned value

時間の開始に切り下げられた時間付き日付を返します。 DateTime または DateTime64

Examples

時間の開始に切り下げる

SELECT
    toStartOfHour(toDateTime('2023-04-21 10:20:30'));
┌─────────────────res─┬─toTypeName(res)─┐
│ 2023-04-21 10:00:00 │ DateTime        │
└─────────────────────┴─────────────────┘

toStartOfISOYear

Introduced in: v1.1

日付または時間付き日付をISO年の初日に切り下げます。これは通常の年とは異なる可能性があります。 ISO週日を参照してください。

注記

戻り値の型は、enable_extended_results_for_datetime_functionsを設定することで構成できます。

Syntax

toStartOfISOYear(value)

Arguments

  • value — ISO年の初日に切り下げる日付または時間付き日付。 Date または Date32 または DateTime または DateTime64

Returned value

与えられた日付または時間付き日付のISO年の初日を返します。 Date

Examples

ISO年の初日に切り下げる

SELECT toStartOfISOYear(toDateTime('2023-04-21 10:20:30'))
┌─toStartOfISOYear(toDateTime('2023-04-21 10:20:30'))─┐
│                                          2023-01-02 │
└─────────────────────────────────────────────────────┘

toStartOfInterval

Introduced in: v20.1

この関数は、toStartOf*()関数を一般化し、toStartOfInterval(date_or_date_with_time, INTERVAL x unit [, time_zone])という構文を持っています。

例えば、

  • toStartOfInterval(t, INTERVAL 1 YEAR)は、toStartOfYear(t)と同じ結果を返します。
  • toStartOfInterval(t, INTERVAL 1 MONTH)は、toStartOfMonth(t)と同じ結果を返します。
  • toStartOfInterval(t, INTERVAL 1 DAY)は、toStartOfDay(t)と同じ結果を返します。
  • toStartOfInterval(t, INTERVAL 15 MINUTE)は、toStartOfFifteenMinutes(t)と同じ結果を返します。

計算は特定の時点に対して相対的に行われます:

インターバルスタート
YEAR年 0
QUARTER1900 Q1
MONTH1900年1月
WEEK1970年、1週目 (01-05)
DAY1970-01-01
HOUR(*)
MINUTE1970-01-01 00:00:00
SECOND1970-01-01 00:00:00
MILLISECOND1970-01-01 00:00:00
MICROSECOND1970-01-01 00:00:00
NANOSECOND1970-01-01 00:00:00
(*) 時間インターバルは特別です:計算は常にその日の午前0時(ミッドナイト)に相対して行われます。したがって、1から23の間の時間の値だけが有用です。

WEEKが指定された場合、toStartOfIntervalは週の始まりが月曜日であると仮定します。この動作は、デフォルトで日曜日が週の始まりとなるtoStartOfWeek関数とは異なります。

第2のオーバーロードは、TimescaleDBのtime_bucket()関数をエミュレートし、PostgreSQLのdate_bin()関数をエミュレートします。

Syntax

toStartOfInterval(value, INTERVAL x unit[, time_zone])
toStartOfInterval(value, INTERVAL x unit[, origin[, time_zone]])

Arguments

  • value — 切り下げる日付または時間付き日付。 Date または DateTime または DateTime64
  • x — インターバル長の数。 - unit — インターバル単位:YEAR、QUARTER、MONTH、WEEK、DAY、HOUR、MINUTE、SECOND、MILLISECOND、MICROSECOND、NANOSECOND。 - time_zone — オプション。文字列としてのタイムゾーン名。 - origin — オプション。計算の起点(第2のオーバーロードのみ)。

Returned value

入力値を含むインターバルの開始を返します。 DateTime

Examples

基本的なインターバル切り下げ

SELECT toStartOfInterval(toDateTime('2023-01-15 14:30:00'), INTERVAL 1 MONTH)
┌─toStartOfInt⋯alMonth(1))─┐
│               2023-01-01 │
└──────────────────────────┘

起点を使用した例

SELECT toStartOfInterval(toDateTime('2023-01-01 14:45:00'), INTERVAL 1 MINUTE, toDateTime('2023-01-01 14:35:30'))
┌─toStartOfInt⋯14:35:30'))─┐
│      2023-01-01 14:44:30 │
└──────────────────────────┘

toStartOfMicrosecond

Introduced in: v22.6

時間付き日付をマイクロ秒の開始に切り下げます。

Syntax

toStartOfMicrosecond(datetime, [timezone])

Arguments

  • datetime — 日付と時間。 DateTime64
  • timezone — オプション。戻り値のタイムゾーン。指定しない場合、関数はvalueパラメータのタイムゾーンを使用します。 String

Returned value

サブマイクロ秒を持つ入力値を返します。 DateTime64

Examples

タイムゾーンなしのクエリ

WITH toDateTime64('2020-01-01 10:20:30.999999999', 9) AS dt64
SELECT toStartOfMicrosecond(dt64);
┌────toStartOfMicrosecond(dt64)─┐
│ 2020-01-01 10:20:30.999999000 │
└───────────────────────────────┘

タイムゾーンありのクエリ

WITH toDateTime64('2020-01-01 10:20:30.999999999', 9) AS dt64
SELECT toStartOfMicrosecond(dt64, 'Asia/Istanbul');
┌─toStartOfMicrosecond(dt64, 'Asia/Istanbul')─┐
│               2020-01-01 12:20:30.999999000 │
└─────────────────────────────────────────────┘

toStartOfMillisecond

Introduced in: v22.6

時間付き日付をミリ秒の開始に切り下げます。

Syntax

toStartOfMillisecond(datetime, [timezone])

Arguments

  • datetime — 日付と時間。 DateTime64
  • timezone — オプション。戻り値のタイムゾーン。指定しない場合、関数はvalueパラメータのタイムゾーンを使用します。 String

Returned value

サブミリ秒を持つ入力値を返します。 DateTime64

Examples

タイムゾーンなしのクエリ

WITH toDateTime64('2020-01-01 10:20:30.999999999', 9) AS dt64
SELECT toStartOfMillisecond(dt64);
┌────toStartOfMillisecond(dt64)─┐
│ 2020-01-01 10:20:30.999000000 │
└───────────────────────────────┘

タイムゾーンありのクエリ

WITH toDateTime64('2020-01-01 10:20:30.999999999', 9) AS dt64
SELECT toStartOfMillisecond(dt64, 'Asia/Istanbul');
┌─toStartOfMillisecond(dt64, 'Asia/Istanbul')─┐
│               2020-01-01 12:20:30.999000000 │
└─────────────────────────────────────────────┘

toStartOfMinute

Introduced in: v1.1

時間付き日付を分の開始に切り下げます。

注記

戻り値の型は、enable_extended_results_for_datetime_functionsを設定することで構成できます。

Syntax

toStartOfMinute(datetime)

Arguments

Returned value

分の開始に切り下げられた時間付き日付を返します。 DateTime または DateTime64

Examples

分の開始に切り下げる

SELECT
    toStartOfMinute(toDateTime('2023-04-21 10:20:30')),
    toStartOfMinute(toDateTime64('2023-04-21 10:20:30.5300', 8))
FORMAT Vertical
Row 1:
──────
toStartOfMinute(toDateTime('2023-04-21 10:20:30')):           2023-04-21 10:20:00
toStartOfMinute(toDateTime64('2023-04-21 10:20:30.5300', 8)): 2023-04-21 10:20:00

toStartOfMonth

Introduced in: v1.1

日付または時間付き日付を月の初日に切り下げます。

注記

戻り値の型は、enable_extended_results_for_datetime_functionsを設定することで構成できます。

Syntax

toStartOfMonth(value)

Arguments

  • value — 月の初日に切り下げる日付または時間付き日付。 Date または Date32 または DateTime または DateTime64

Returned value

与えられた日付または時間付き日付の初日を返します。 Date

Examples

月の初日に切り下げる

SELECT toStartOfMonth(toDateTime('2023-04-21 10:20:30'))
┌─toStartOfMonth(toDateTime('2023-04-21 10:20:30'))─┐
│                                        2023-04-01 │
└───────────────────────────────────────────────────┘

toStartOfNanosecond

Introduced in: v22.6

時間付き日付をナノ秒の開始に切り下げます。

Syntax

toStartOfNanosecond(datetime, [timezone])

Arguments

  • datetime — 日付と時間。 DateTime64
  • timezone — オプション。戻り値のタイムゾーン。指定しない場合、関数はvalueパラメータのタイムゾーンを使用します。 String

Returned value

ナノ秒を持つ入力値を返します。 DateTime64

Examples

タイムゾーンなしのクエリ

WITH toDateTime64('2020-01-01 10:20:30.999999999', 9) AS dt64
SELECT toStartOfNanosecond(dt64);
┌─────toStartOfNanosecond(dt64)─┐
│ 2020-01-01 10:20:30.999999999 │
└───────────────────────────────┘

タイムゾーンありのクエリ

WITH toDateTime64('2020-01-01 10:20:30.999999999', 9) AS dt64
SELECT toStartOfNanosecond(dt64, 'Asia/Istanbul');
┌─toStartOfNanosecond(dt64, 'Asia/Istanbul')─┐
│              2020-01-01 12:20:30.999999999 │
└────────────────────────────────────────────┘

toStartOfQuarter

Introduced in: v1.1

日付または時間付き日付を四半期の初日に切り下げます。四半期の初日は1月1日、4月1日、7月1日、または10月1日です。

注記

戻り値の型は、enable_extended_results_for_datetime_functionsを設定することで構成できます。

Syntax

toStartOfQuarter(value)

Arguments

  • value — 四半期の初日に切り下げる日付または時間付き日付。 Date または Date32 または DateTime または DateTime64

Returned value

与えられた日付または時間付き日付の四半期の初日を返します。 Date

Examples

四半期の初日に切り下げる

SELECT toStartOfQuarter(toDateTime('2023-04-21 10:20:30'))
┌─toStartOfQuarter(toDateTime('2023-04-21 10:20:30'))─┐
│                                          2023-04-01 │
└─────────────────────────────────────────────────────┘

toStartOfSecond

Introduced in: v20.5

時間付き日付を秒の開始に切り下げます。

Syntax

toStartOfSecond(datetime, [timezone])

Arguments

  • datetime — サブ秒を切り捨てるための日付と時間。 DateTime64
  • timezone — オプション。戻り値のタイムゾーン。指定しない場合、関数はvalueパラメータのタイムゾーンを使用します。 String

Returned value

サブ秒なしの入力値を返します。 DateTime64

Examples

タイムゾーンなしのクエリ

WITH toDateTime64('2020-01-01 10:20:30.999', 3) AS dt64
SELECT toStartOfSecond(dt64);
┌───toStartOfSecond(dt64)─┐
│ 2020-01-01 10:20:30.000 │
└─────────────────────────┘

タイムゾーンありのクエリ

WITH toDateTime64('2020-01-01 10:20:30.999', 3) AS dt64
SELECT toStartOfSecond(dt64, 'Asia/Istanbul');
┌─toStartOfSecond(dt64, 'Asia/Istanbul')─┐
│                2020-01-01 13:20:30.000 │
└────────────────────────────────────────┘

toStartOfTenMinutes

Introduced in: v20.1

時間付き日付を最近の10分間隔の開始に切り下げます。

注記

戻り値の型は、enable_extended_results_for_datetime_functionsを設定することで構成できます。

Syntax

toStartOfTenMinutes(datetime)

Arguments

Returned value

最近の10分間隔の開始に切り下げられた時間付き日付を返します。 DateTime または DateTime64

Examples

SELECT
    toStartOfTenMinutes(toDateTime('2023-04-21 10:17:00')),
    toStartOfTenMinutes(toDateTime('2023-04-21 10:20:00')),
    toStartOfTenMinutes(toDateTime('2023-04-21 10:23:00'))
FORMAT Vertical
Row 1:
──────
toStartOfTenMinutes(toDateTime('2023-04-21 10:17:00')): 2023-04-21 10:10:00
toStartOfTenMinutes(toDateTime('2023-04-21 10:20:00')): 2023-04-21 10:20:00
toStartOfTenMinutes(toDateTime('2023-04-21 10:23:00')): 2023-04-21 10:20:00

toStartOfWeek

Introduced in: v20.1

日付または時間付き日付を最近の日曜日または月曜日に切り下げます。

注記

戻り値の型は、enable_extended_results_for_datetime_functionsを設定することで構成できます。

Syntax

toStartOfWeek(datetime[, mode[, timezone]])

Arguments

  • datetime — 変換する日付または時間付き日付。 Date または DateTime または Date32 または DateTime64
  • modetoWeek()関数で説明されているように、週の初日を決定します。デフォルトは0UInt8
  • timezone — 変換に使用するタイムゾーン。指定しない場合、サーバーのタイムゾーンが使用されます。 String

Returned value

与えられた日付の最近の日曜日または月曜日の日付を返します。モードによって決まります。 Date または Date32 または DateTime または DateTime64

Examples

最近の日曜日または月曜日に切り下げる

SELECT
        toStartOfWeek(toDateTime('2023-04-21 10:20:30')), /* a Friday */
        toStartOfWeek(toDateTime('2023-04-21 10:20:30'), 1), /* a Friday */
        toStartOfWeek(toDate('2023-04-24')), /* a Monday */
        toStartOfWeek(toDate('2023-04-24'), 1) /* a Monday */
    FORMAT Vertical
Row 1:
    ──────
    toStartOfWeek(toDateTime('2023-04-21 10:20:30')):      2023-04-17
    toStartOfWeek(toDateTime('2023-04-21 10:20:30'), 1):   2023-04-17
    toStartOfWeek(toDate('2023-04-24')):                   2023-04-24
    toStartOfWeek(toDate('2023-04-24'), 1):                2023-04-24

toStartOfYear

Introduced in: v1.1

日付または時間付き日付を年の初日に切り下げます。日付をDateオブジェクトとして返します。

注記

戻り値の型は、enable_extended_results_for_datetime_functionsを設定することで構成できます。

Syntax

toStartOfYear(value)

Arguments

Returned value

与えられた日付/時間の年の初日を返します。 Date

Examples

年の初日に切り下げる

SELECT toStartOfYear(toDateTime('2023-04-21 10:20:30'))
┌─toStartOfYear(toDateTime('2023-04-21 10:20:30'))─┐
│                                       2023-01-01 │
└──────────────────────────────────────────────────┘

toTimeWithFixedDate

Introduced in: v1.1

日付または時間付き日付の時間コンポーネントを抽出します。 戻り値は、現在 1970-01-02 からのオフセットです。 ただし、正確な時点は実装の詳細であり、将来的に変更される可能性があります。

したがって、toTimeは単独で使用するべきではありません。 この関数の主な目的は、2つの日付または時間付き日付間の時間の差を計算することです。例えば、 toTime(dt1) - toTime(dt2)です。

Syntax

toTime(date[, timezone])

Arguments

  • date — 時間に変換する日付。 Date または DateTime または DateTime64
  • timezone — オプション。戻り値のタイムゾーン。 String

Returned value

固定時点(現在は1970-01-02として選択されています)に対するオフセットの形で、日付または時間付き日付の時間コンポーネントを返します。 DateTime

Examples

2つの日付間の時間差を計算

SELECT toTime('2025-06-15 12:00:00'::DateTime) - toTime('2024-05-10 11:00:00'::DateTime) AS result, toTypeName(result)
┌─result─┬─toTypeName(result)─┐
│   3600 │ Int32              │
└────────┴────────────────────┘

toTimezone

Introduced in: v1.1

DateTimeまたはDateTime64を指定されたタイムゾーンに変換します。 データの内部値(Unix秒数)は変更されません。 値のタイムゾーン属性と値の文字列表現のみが変更されます。

Syntax

toTimeZone(datetime, timezone)

Arguments

Returned value

入力と同じタイムスタンプを返しますが、指定されたタイムゾーンとともに。 DateTime または DateTime64

Examples

使用例

SELECT toDateTime('2019-01-01 00:00:00', 'UTC') AS time_utc,
toTypeName(time_utc) AS type_utc,
toInt32(time_utc) AS int32utc,
toTimeZone(time_utc, 'Asia/Yekaterinburg') AS time_yekat,
toTypeName(time_yekat) AS type_yekat,
toInt32(time_yekat) AS int32yekat,
toTimeZone(time_utc, 'US/Samoa') AS time_samoa,
toTypeName(time_samoa) AS type_samoa,
toInt32(time_samoa) AS int32samoa
FORMAT Vertical;
Row 1:
──────
time_utc:   2019-01-01 00:00:00
type_utc:   DateTime('UTC')
int32utc:   1546300800
time_yekat: 2019-01-01 05:00:00
type_yekat: DateTime('Asia/Yekaterinburg')
int32yekat: 1546300800
time_samoa: 2018-12-31 13:00:00
type_samoa: DateTime('US/Samoa')
int32samoa: 1546300800

toUTCTimestamp

Introduced in: v23.8

日付または時間付き日付を1つのタイムゾーンからUTCタイムゾーンのタイムスタンプに変換します。この関数は、主にApache Sparkや同様のフレームワークとの互換性のために含まれています。

Syntax

toUTCTimestamp(datetime, time_zone)

Arguments

  • datetime — 日付または時間付き日付の型の定数値または式。 DateTime または DateTime64
  • time_zone — タイムゾーンを表す定数値または式。 String

Returned value

UTCタイムゾーンの日付または時間付き日付を返します。 DateTime または DateTime64

Examples

タイムゾーンをUTCに変換

SELECT toUTCTimestamp(toDateTime('2023-03-16'), 'Asia/Shanghai')
┌─toUTCTimestamp(toDateTime('2023-03-16'), 'Asia/Shanghai')─┐
│                                     2023-03-15 16:00:00 │
└─────────────────────────────────────────────────────────┘

toUnixTimestamp

Introduced in: v1.1

StringDate、またはDateTimeをUnixタイムスタンプ(1970-01-01 00:00:00 UTCからの秒数)に変換します。これは、UInt32として返されます。

Syntax

toUnixTimestamp(date, [timezone])

Arguments

  • date — 変換する値。 Date または Date32 または DateTime または DateTime64 または String
  • timezone — オプション。変換に使用するタイムゾーン。指定しない場合、サーバーのタイムゾーンが使用されます。 String

Returned value

Unixタイムスタンプを返します。 UInt32

Examples

使用例

SELECT
'2017-11-05 08:07:47' AS dt_str,
toUnixTimestamp(dt_str) AS from_str,
toUnixTimestamp(dt_str, 'Asia/Tokyo') AS from_str_tokyo,
toUnixTimestamp(toDateTime(dt_str)) AS from_datetime,
toUnixTimestamp(toDateTime64(dt_str, 0)) AS from_datetime64,
toUnixTimestamp(toDate(dt_str)) AS from_date,
toUnixTimestamp(toDate32(dt_str)) AS from_date32
FORMAT Vertical;
Row 1:
──────
dt_str:          2017-11-05 08:07:47
from_str:        1509869267
from_str_tokyo:  1509836867
from_datetime:   1509869267
from_datetime64: 1509869267
from_date:       1509840000
from_date32:     1509840000

toWeek

Introduced in: v20.1

この関数は、日付または日時の週番号を返します。toWeek()の2引数形式では、週の始まりが日曜日か月曜日か、また、戻り値が0から53の範囲か、または1から53の範囲かを指定できます。

toISOWeek()は、toWeek(date,3)に相当する互換性のある関数です。

以下の表は、モード引数の動作を説明しています。

モード週の始まり範囲週1は最初の週 ...
0日曜日0-53今年の中の1つの日曜日
1月曜日0-53今年中に4日以上ある
2日曜日1-53今年の中の1つの日曜日
3月曜日1-53今年中に4日以上ある
4日曜日0-53今年中に4日以上ある
5月曜日0-53今年の中の1つの月曜日
6日曜日1-53今年中に4日以上ある
7月曜日1-53今年の中の1つの月曜日
8日曜日1-531月1日を含む
9月曜日1-531月1日を含む

「今年中に4日以上ある」という意味のモード値に対しては、ISO 8601:1988に従って週が番号付けされています:

  • 1月1日を含む週が新年に4日以上ある場合、それは週1です。
  • そうでない場合、それは前年の最後の週であり、次の週が週1です。

「1月1日を含む」という意味のモード値に対しては、その週に1月1日がある場合、それは週1です。 新年に何日があったかは関係ありません。たとえ新年に1日しか含まれていなくても、前年の最後の週に1月1日が含まれている場合、その次の週は来年の週1となります。

第1引数は、Stringとしても指定でき、parseDateTime64BestEffort()でサポートされている形式です。文字列引数のサポートは、特定のサードパーティツールに期待されるMySQLとの互換性のためにのみ存在します。文字列引数のサポートは、将来的に新しいMySQL互換性設定に依存する可能性があり、文字列解析は通常遅いため、使用しないことが推奨されます。

Syntax

toWeek(datetime[, mode[, time_zone]])

Arguments

  • datetime — 週番号を取得する日付または時間付き日付。 Date または DateTime
  • mode — オプション。 0から9のモードは、週の初日と週番号の範囲を決定します。デフォルトは0。 - time_zone — オプション。タイムゾーン。 String

Returned value

指定されたモードに従って週番号を返します。 UInt32

Examples

異なるモードでの週番号の取得

SELECT toDate('2016-12-27') AS date, toWeek(date) AS week0, toWeek(date,1) AS week1, toWeek(date,9) AS week9
┌───────date─┬─week0─┬─week1─┬─week9─┐
│ 2016-12-27 │    52 │    52 │     1 │
└────────────┴───────┴───────┴───────┘

toYYYYMM

導入: v1.1

日付または時刻を含む日付を、年と月の番号を含む UInt32 数値に変換します (YYYY * 100 + MM)。第2のオプショナルなタイムゾーン引数を受け付けます。指定した場合、タイムゾーンは文字列定数でなければなりません。

この関数は YYYYMMDDToDate() の逆です。

構文

toYYYYMM(datetime[, timezone])

引数

  • datetime — 変換する日付または時刻を含む日付。 Date または Date32 または DateTime または DateTime64
  • timezone — オプショナル。変換のためのタイムゾーン。指定した場合、タイムゾーンは文字列定数でなければなりません。 String

返される値

年と月の番号を含む UInt32 数値を返します (YYYY * 100 + MM)。 UInt32

現在の日付を YYYYMM 形式に変換

SELECT toYYYYMM(now(), 'US/Eastern')
┌─toYYYYMM(now(), 'US/Eastern')─┐
│                        202303 │
└───────────────────────────────┘

toYYYYMMDD

導入: v1.1

日付または時刻を含む日付を、年、月、日を含む UInt32 数値に変換します (YYYY * 10000 + MM * 100 + DD)。第2のオプショナルなタイムゾーン引数を受け付けます。指定した場合、タイムゾーンは文字列定数でなければなりません。

構文

toYYYYMMDD(datetime[, timezone])

引数

  • datetime — 変換する日付または時刻を含む日付。 Date または Date32 または DateTime または DateTime64
  • timezone — オプショナル。変換のためのタイムゾーン。指定した場合、タイムゾーンは文字列定数でなければなりません。 String

返される値

年、月、日を含む UInt32 数値を返します (YYYY * 10000 + MM * 100 + DD)。 UInt32

現在の日付を YYYYMMDD 形式に変換

SELECT toYYYYMMDD(now(), 'US/Eastern')
┌─toYYYYMMDD(now(), 'US/Eastern')─┐
│                        20230302 │
└─────────────────────────────────┘

toYYYYMMDDhhmmss

導入: v1.1

日付または時刻を含む日付を、年、月、日、時、分、秒を含む UInt64 数値に変換します (YYYY * 10000000000 + MM * 100000000 + DD * 1000000 + hh * 10000 + mm * 100 + ss)。第2のオプショナルなタイムゾーン引数を受け付けます。指定した場合、タイムゾーンは文字列定数でなければなりません。

構文

toYYYYMMDDhhmmss(datetime[, timezone])

引数

  • datetime — 変換する日付または時刻を含む日付。 Date または Date32 または DateTime または DateTime64
  • timezone — オプショナル。変換のためのタイムゾーン。指定した場合、タイムゾーンは文字列定数でなければなりません。 String

返される値

年、月、日、時、分、秒を含む UInt64 数値を返します (YYYY * 10000000000 + MM * 100000000 + DD * 1000000 + hh * 10000 + mm * 100 + ss)。 UInt64

現在の日付と時刻を YYYYMMDDhhmmss 形式に変換

SELECT toYYYYMMDDhhmmss(now(), 'US/Eastern')
┌─toYYYYMMDDhhmmss(now(), 'US/Eastern')─┐
│                        20230302112209 │
└───────────────────────────────────────┘

toYear

導入: v1.1

Date または DateTime 値の年成分 (AD) を返します。

構文

toYear(datetime)

引数

返される値

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

使用例

SELECT toYear(toDateTime('2023-04-21 10:20:30'))
┌─toYear(toDateTime('2023-04-21 10:20:30'))─┐
    │                                     2023  │
    └───────────────────────────────────────────┘

toYearNumSinceEpoch

導入: v25.3

1970年から経過した年数を返します。

構文

toYearNumSinceEpoch(date)

引数

返される値

正の整数

SELECT toYearNumSinceEpoch(toDate('2024-10-01'))
54

toYearWeek

導入: v20.1

日付の年と週を返します。結果の年は、年の最初の週と最後の週に関して、日付引数の年と異なる場合があります。

モード引数は toWeek() のモード引数と同様に機能します。

警告: toYearWeek() によって返される週番号は、toWeek() が返すものと異なる場合があります。toWeek() は常に指定された年のコンテキストで週番号を返し、toWeek()0 を返す場合、toYearWeek() は前年の最終週に対応する値を返します。以下の例の prev_yearWeek を参照してください。

最初の引数は、parseDateTime64BestEffort() によってサポートされる形式の String としても指定できます。文字列引数のサポートは、特定の3rdパーティーツールが期待する MySQL との互換性のためにのみ存在します。文字列引数のサポートは、将来的に新しい MySQL 互換性設定に依存するようになり、文字列解析が一般に遅いため、使用しないことをお勧めします。

構文

toYearWeek(datetime[, mode[, timezone]])

引数

  • datetime — 年と週を取得する日付または時刻を含む日付。 Date または DateTime
  • mode — オプショナル。0 から 9 までのモードが、週の最初の日と週番号の範囲を決定します。デフォルトは 0。 - timezone — オプショナル。タイムゾーン。 String

返される値

年と週番号を組み合わせた整数値を返します。 UInt32

異なるモードでの年-週の組み合わせを取得

SELECT toDate('2016-12-27') AS date, toYearWeek(date) AS yearWeek0, toYearWeek(date,1) AS yearWeek1, toYearWeek(date,9) AS yearWeek9, toYearWeek(toDate('2022-01-01')) AS prev_yearWeek
┌───────date─┬─yearWeek0─┬─yearWeek1─┬─yearWeek9─┬─prev_yearWeek─┐
│ 2016-12-27 │    201652 │    201652 │    201701 │        202152 │
└────────────┴───────────┴───────────┴───────────┴───────────────┘

today

導入: v1.1

クエリ解析の瞬間の現在の日付を返します。 toDate(now()) と同じです。

構文

today()

引数

  • なし。 返される値

現在の日付を返します。 Date

使用例

SELECT today() AS today, curdate() AS curdate, current_date() AS current_date FORMAT Pretty
┏━━━━━━━━━━━━┳━━━━━━━━━━━━┳━━━━━━━━━━━━━━┓
┃      today ┃    curdate ┃ current_date ┃
┡━━━━━━━━━━━━╇━━━━━━━━━━━━╇━━━━━━━━━━━━━━┩
│ 2025-03-03 │ 2025-03-03 │   2025-03-03 │
└────────────┴────────────┴──────────────┘

yesterday

導入: v1.1

引数を受け取らず、クエリ解析のいずれかの瞬間の昨日の日付を返します。

構文

yesterday()

引数

  • なし。 返される値

昨日の日付を返します。 Date

昨日の日付を取得

SELECT yesterday();
SELECT today() - 1;
┌─yesterday()─┐
│  2025-06-09 │
└─────────────┘
┌─minus(today(), 1)─┐
│        2025-06-09 │
└───────────────────┘