日付と時刻を扱う関数
このセクションのほとんどの関数は、Europe/Amsterdam のようなタイムゾーンをオプションの引数として受け取ります。この場合、ローカル(デフォルト)のタイムゾーンではなく、指定したタイムゾーンが使用されます。
例
UTCTimestamp
導入バージョン: v22.11
クエリの解析時点における現在の日付と時刻を返します。この関数は定数式です。
この関数は now('UTC') と同じ結果を返します。MySQL 互換性のためだけに追加されました。推奨されるのは now の使用です。
構文
別名: UTC_timestamp
引数
- なし。
戻り値
クエリの解析時点における現在の日時を返します。DateTime
例
現在の UTC タイムスタンプを取得
YYYYMMDDToDate
導入バージョン: v23.9
年・月・日を表す数値を Date に変換します。
この関数は、関数 toYYYYMMDD() の逆の動作をします。
入力が有効な Date 値を表していない場合、結果は未定義です。
構文
引数
戻り値
指定された引数から Date 型の値を返します。Date
使用例
例
YYYYMMDDToDate32
導入バージョン: v23.9
年・月・日を表す数値を Date32 に変換します。
この関数は、関数 toYYYYMMDD() の逆の変換を行います。
入力が有効な Date32 の値を表していない場合、結果は未定義です。
構文
引数
返される値
指定された引数から Date32 型の値を返します。Date32
使用例
例
YYYYMMDDhhmmssToDateTime
導入バージョン: v23.9
年・月・日・時・分・秒を表す数値を DateTime に変換します。
この関数は、関数 toYYYYMMDDhhmmss() の逆の動作をします。
入力が有効な DateTime 値を表していない場合、出力は未定義となります。
構文
引数
戻り値
指定された引数に基づいて DateTime 値を返します。DateTime
例
例
YYYYMMDDhhmmssToDateTime64
導入バージョン: v23.9
年・月・日・時・分・秒を含む数値を DateTime64 に変換します。
この関数は、関数 toYYYYMMDDhhmmss() の逆です。
入力が有効な DateTime64 値をエンコードしていない場合、出力は未定義です。
構文
引数
YYYYMMDDhhmmss— 年、月、日、時、分、秒を含む数値。(U)Int*またはFloat*またはDecimalprecision— 小数部の桁精度 (0-9)。UInt8timezone— タイムゾーン名。String
戻り値
指定された引数から DateTime64 型の値を返します。DateTime64
使用例
例
addDate
導入バージョン: v23.9
指定された Date、日時、または文字列としてエンコードされた日付/日時に時間間隔を加算します。
加算の結果がデータ型の範囲外の値になる場合、結果は未定義です。
構文
引数
datetime—intervalを加える対象の日付または日時。DateまたはDate32またはDateTimeまたはDateTime64またはStringinterval— 加算するインターバル。Interval
戻り値
datetime に interval を加算して得られた日付または日時を返します。Date または Date32 または DateTime または DateTime64
例
日付にインターバルを加算する
addDays
導入バージョン: v1.1
日付、日時、またはそれらの文字列表現に、指定した日数を加算します。
構文
引数
datetime— 指定した日数を加算する対象の日付または日時。DateまたはDate32またはDateTimeまたはDateTime64またはStringnum— 加算する日数。(U)Int*またはFloat*
戻り値
datetime に num 日を加算した値を返します。Date または Date32 または DateTime または DateTime64
例
さまざまな日付型に日数を加算する
代替の INTERVAL 構文を使用する
addHours
導入バージョン: v1.1
日付、日時、または文字列表現の日付もしくは日時に、指定した時間を加算します。
構文
引数
datetime— 指定した時間数を加算する対象の日付または日時。DateまたはDate32またはDateTimeまたはDateTime64またはStringnum— 加算する時間数。(U)Int*またはFloat*
戻り値
datetime に num 時間を加算した値を返します。DateTime または DateTime64(3)
例
異なる日付/日時型への時間の加算
別の INTERVAL 構文を使う
addInterval
導入バージョン: v22.11
あるインターバルに、別のインターバルまたはインターバルのタプルを加算します。
同じ型のインターバル同士は 1 つのインターバルにまとめられます。たとえば toIntervalDay(1) と toIntervalDay(2) を渡した場合、結果は (1,1) ではなく (3) になります。
構文
引数
interval_1— 最初のインターバル、またはインターバルのタプル。IntervalまたはTuple(Interval)interval_2— 加算する 2 番目のインターバル。Interval
返される値
インターバルのタプルを返します。Tuple(Interval)
例
インターバルを加算する
addMicroseconds
導入バージョン: v22.6
日付時刻型、または文字列で表現された日付時刻に対して、指定したマイクロ秒数を加算します。
構文
引数
datetime— 指定したマイクロ秒数を加算する日時。DateTimeまたはDateTime64またはStringnum— 加算するマイクロ秒数。(U)Int*またはFloat*
戻り値
date_time に num マイクロ秒を加算した値を返します。戻り値の型は DateTime64 です。
例
異なる日付時刻型にマイクロ秒を加算する
別の INTERVAL 構文を使用する
addMilliseconds
導入: v22.6
日付時刻型、または文字列表現の日付時刻に対して、指定したミリ秒数を加算します。
構文
引数
datetime— 指定されたミリ秒数を加算する対象の日時。DateTimeまたはDateTime64またはStringnum— 加算するミリ秒数。(U)Int*またはFloat*
返される値
datetime に num ミリ秒を加算した値を返します。型は DateTime64 です。
例
異なる日時型にミリ秒を加算する
INTERVAL 構文の別形式を使用する
addMinutes
導入バージョン: v1.1
日付、日時、または文字列表現の日付もしくは日時に、指定した分を加算します。
構文
引数
datetime— 指定した分を加算する対象の日付または日時。DateまたはDate32またはDateTimeまたはDateTime64またはStringnum— 加算する分の量。(U)Int*またはFloat*
戻り値
datetime に num 分を加算した値を返す。型は DateTime または DateTime64(3)。
例
異なる日付型に分を加算する
別の INTERVAL 構文の使用
addMonths
導入バージョン: v1.1
日付、日時、または文字列表現の日付/日時に、指定した数の月を追加します。
構文
引数
datetime— 指定した月数を加算する対象の日付または日時。DateまたはDate32またはDateTimeまたはDateTime64またはStringnum— 加算する月数。(U)Int*またはFloat*
返り値
datetime に num か月を加算した値を返します。Date または Date32 または DateTime または DateTime64
例
さまざまな日付・日時型に月を加算する
代替の INTERVAL 構文を使用する
addNanoseconds
導入バージョン: v22.6
日時型、または文字列表現の日時に、指定したナノ秒数を加算します。
構文
引数
datetime— 指定したナノ秒数を加算する日時。DateTimeまたはDateTime64またはStringnum— 加算するナノ秒数。(U)Int*またはFloat*
戻り値
datetime に num ナノ秒を加算した値を返す。戻り値の型は DateTime64
使用例
異なる日付・時刻型にナノ秒を加算する
別の INTERVAL 構文の使用
addQuarters
導入バージョン: v20.1
Date、時刻付きの DateTime、またはそれらの日付/日時を文字列としてエンコードした値に対して、指定した数の四半期を加算します。
構文
引数
datetime— 指定された四半期数を加算する対象の日付または日時。DateまたはDate32またはDateTimeまたはDateTime64またはStringnum— 加算する四半期数。(U)Int*またはFloat*
戻り値
datetime に num 四半期を加算した値を返します。型は Date または Date32 または DateTime または DateTime64
使用例
異なる日付型に四半期を加算する
別の INTERVAL 構文の利用
addSeconds
導入バージョン: v1.1
日付(Date)、日時(DateTime)、またはそれらを文字列で表現した値に、指定した秒数を加算します。
構文
引数
datetime— 指定した秒数を加算する対象の日付または日時。DateまたはDate32またはDateTimeまたはDateTime64またはStringnum— 加算する秒数。(U)Int*またはFloat*
戻り値
datetime に num 秒を加算した値を返す。戻り値の型は DateTime または DateTime64(3)
例
異なる日付型に秒数を加算する
代替の INTERVAL 構文の利用
addTupleOfIntervals
導入バージョン: v22.11
日付または日時に対して、タプルで指定された複数のインターバルを順に加算します。
構文
引数
datetime— インターバルを加算する対象の日付または日時。DateまたはDate32またはDateTimeまたはDateTime64intervals—datetimeに加算するインターバルのタプル。Tuple(Interval)
戻り値
intervals を加算した date を返します。Date または Date32 または DateTime または DateTime64
例
インターバルのタプルを日付に加算する
addWeeks
導入バージョン: v1.1
指定した週数を、日付、日時、または文字列表現の日時/日付に加算します。
構文
引数
datetime— 指定した週数を加算する対象の日付または日時。DateまたはDate32またはDateTimeまたはDateTime64またはStringnum— 加算する週数。(U)Int*またはFloat*
戻り値
datetime に num 週を加算した値を返します。型は Date または Date32 または DateTime または DateTime64 です。
使用例
異なる日付型に対して週を加算する
別の INTERVAL 構文の使用
addYears
導入バージョン: v1.1
日付、日時、または文字列表現の日付/日時に、指定した年数を加算します。
構文
引数
datetime— 指定した年数を加算する対象の日付または日時。DateまたはDate32またはDateTimeまたはDateTime64またはStringnum— 加算する年数。(U)Int*またはFloat*
返り値
datetime に num 年を加算した結果を返す。型は Date または Date32 または DateTime または DateTime64
例
異なる日付型に年数を加算する
別の INTERVAL 構文の利用
age
導入バージョン: v23.1
startdate と enddate の差の、指定した単位での値を返します。
差は 1 ナノ秒の精度で計算されます。
たとえば、2021-12-29 と 2022-01-01 の差は、日単位では 3 日、 月単位では 0か月、年単位では 0年になります。
age の代わりの関数としては、dateDiff を参照してください。
構文
引数
unit— 結果を表す時間単位の種類。
| Unit | 使用可能な値 |
|---|---|
| nanosecond | nanosecond, nanoseconds, ns |
| microsecond | microsecond, microseconds, us, u |
| millisecond | millisecond, milliseconds, ms |
| second | second, seconds, ss, s |
| minute | minute, minutes, mi, n |
| hour | hour, hours, hh, h |
| day | day, days, dd, d |
| week | week, weeks, wk, ww |
| month | month, months, mm, m |
| quarter | quarter, quarters, qq, q |
| year | year, years, yyyy, yy |
startdate— 減算される最初の時間値(減数)。DateまたはDate32またはDateTimeまたはDateTime64enddate— 減算を行う 2 つ目の時間値(被減数)。DateまたはDate32またはDateTimeまたはDateTime64timezone— オプション。タイムゾーン名。指定された場合はstartdateとenddateの両方に適用されます。指定されていない場合は、startdateとenddateに設定されているタイムゾーンが使用されます。それらが同一でない場合、結果は未定義です。String
戻り値
enddate と startdate の差を unit で表して返します。Int32
例
年齢を時間単位で計算する
年齢を複数の単位で計算する
changeDay
導入バージョン: v24.7
日付または日時の「日」の部分を変更します。
構文
引数
date_or_datetime— 変更対象の値。DateまたはDate32またはDateTimeまたはDateTime64value— 新しい値。(U)Int*
返される値
date_or_datetime と同じ型で、日が変更された値を返します。Date または Date32 または DateTime または DateTime64
例
使用例
changeHour
導入バージョン: v24.7
日付または日時の時コンポーネントを変更します。
構文
引数
date_or_datetime— 変更対象の値。DateまたはDate32またはDateTimeまたはDateTime64value— 新しく設定する値。(U)Int*
戻り値
date_or_datetime と同じ型で、分のコンポーネントが変更された値を返します。DateTime または DateTime64
例
使用例
changeMinute
導入バージョン: v24.7
Date または DateTime の分の値を変更します。
構文
引数
date_or_datetime— 変更対象の値。DateまたはDate32またはDateTimeまたはDateTime64value— 新しい値。(U)Int*
返される値
date_or_datetime と同じ型で、分の値が変更された値を返します。DateTime または DateTime64
例
使用例
changeMonth
導入バージョン: v24.7
日付または日時の月の部分を変更します。
構文
引数
date_or_datetime— 変更する値。DateまたはDate32またはDateTimeまたはDateTime64value— 新しい値。(U)Int*
戻り値
date_or_datetime と同じ型で、月の成分が変更された値を返します。Date または Date32 または DateTime または DateTime64
例
使用例
changeSecond
導入バージョン: v24.7
日付または日時の秒の部分を変更します。
構文
引数
date_or_datetime— 変更する対象の値。DateまたはDate32またはDateTimeまたはDateTime64value— 設定する新しい値。(U)Int*
返される値
date_or_datetime と同じ型で、秒の部分が変更された値を返します。DateTime または DateTime64
例
使用例
changeYear
導入バージョン: v24.7
日付または日時の年の部分を変更します。
構文
引数
date_or_datetime— 変更する対象の値。DateまたはDate32またはDateTimeまたはDateTime64value— 新しい値。(U)Int*
戻り値
date_or_datetime と同じ型で、年の部分が変更された値を返します。Date または Date32 または DateTime または DateTime64
例
使用例
dateDiff
導入バージョン: v23.4
指定した unit の境界が startdate と enddate の間でいくつ跨いだかを返します。
差分は相対単位を用いて計算されます。例えば、2021-12-29 と 2022-01-01 の差分は、単位 day の場合は 3 日
(toRelativeDayNum を参照)、単位 month の場合は 1 か月(toRelativeMonthNum を参照)、単位 year の場合は 1 年(toRelativeYearNum を参照)です。
単位 week が指定された場合、dateDiff は週の開始日を月曜日とみなします。
この挙動は、デフォルトで週の開始日が日曜日である toWeek() 関数とは異なる点に注意してください。
dateDiff の代替としては、age 関数を参照してください。
構文
別名: timestampDiff, TIMESTAMP_DIFF, DATE_DIFF, date_diff, timestamp_diff
引数
unit— 結果を表す時間間隔の種類。
| Unit | 指定可能な値 |
|---|---|
| nanosecond | nanosecond, nanoseconds, ns |
| microsecond | microsecond, microseconds, us, u |
| millisecond | millisecond, milliseconds, ms |
| second | second, seconds, ss, s |
| minute | minute, minutes, mi, n |
| hour | hour, hours, hh, h |
| day | day, days, dd, d |
| week | week, weeks, wk, ww |
| month | month, months, mm, m |
| quarter | quarter, quarters, qq, q |
| year | year, years, yyyy, yy |
startdate— 減算される最初の時刻値(被減数)。DateまたはDate32またはDateTimeまたはDateTime64enddate— 減算の基準となる 2 つ目の時刻値(減数)。DateまたはDate32またはDateTimeまたはDateTime64timezone— 任意。タイムゾーン名。指定された場合、startdateとenddateの両方に適用されます。指定されない場合は、startdateとenddateのタイムゾーンが使用されます。それらが同じでない場合、結果は未定義です。String
戻り値
enddate と startdate の差を unit 単位で返します。Int64
例
日時の差を時間単位で計算する
日付の差をさまざまな単位で計算する
dateName
導入バージョン: v21.7
日付の指定された要素を返します。
指定可能な値は次のとおりです:
- 'year'
- 'quarter'
- 'month'
- 'week'
- 'dayofyear'
- 'day'
- 'weekday'
- 'hour'
- 'minute'
- 'second'
構文
引数
date_part— 抽出する日付のパーツ。Stringdatetime— 日付または日付と時刻の値。DateまたはDate32またはDateTimeまたはDateTime64timezone— 省略可。タイムゾーン。String
戻り値
指定された日付のパーツを返します。String
例
さまざまな日付パーツの抽出
dateTrunc
導入バージョン: v20.8
日付と時刻の値を、指定した日付/時刻要素まで切り捨てます。
構文
別名: DATE_TRUNC
引数
unit— 結果をどの単位で切り捨てるかを指定します。指定可能な値:nanosecond(DateTime64 のみ),microsecond(DateTime64 のみ),millisecond(DateTime64 のみ),second,minute,hour,day,week,month,quarter,year。Stringdatetime— 日付と時刻。DateまたはDate32またはDateTimeまたはDateTime64timezone— 省略可能。戻り値の日時に対するタイムゾーン名。指定されていない場合、関数はdatetime引数のタイムゾーンを使用します。String
戻り値
切り捨てられた日付時刻の値を返します。
| Unit 引数 | datetime 引数 | 戻り値の型 |
|---|---|---|
| Year, Quarter, Month, Week | Date32 or DateTime64 or Date or DateTime | Date32 または Date |
| Day, Hour, Minute, Second | Date32, DateTime64, Date, or DateTime | DateTime64 または DateTime |
| Millisecond, Microsecond, | Any | DateTime64 |
| Nanosecond | スケール 3、6、または 9 |
使用例
タイムゾーンを指定せずに切り捨て
指定したタイムゾーンでの切り捨て
formatDateTime
導入バージョン: v1.1
指定されたフォーマット文字列に従って、日付または日時をフォーマットします。format は定数式であるため、1 つの結果カラムに対して複数のフォーマットを使用することはできません。
formatDateTime は MySQL の datetime フォーマットスタイルを使用します。詳細は MySQL ドキュメント を参照してください。
この関数と逆の操作を行う関数は parseDateTime です。
置換フィールドを使用して、結果文字列のパターンを定義できます。
下表のサンプルカラムは、2018-01-02 22:33:44 をフォーマットした結果を示しています。
置換フィールド:
| プレースホルダー | 説明 | 例 |
|---|---|---|
| %a | 曜日の省略名 (Mon-Sun) | Mon |
| %b | 月の省略名 (Jan-Dec) | Jan |
| %c | 月を整数値で表現 (01-12) | 01 |
| %C | 年を 100 で割り、整数に切り捨てた値 (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 |
| %g | ISO 8601 に揃えた 2 桁の年の形式 | 18 |
| %G | ISO 週番号用の 4 桁の年の形式 | 2018 |
| %h | 12 時間制の時 (01-12) | 09 |
| %H | 24 時間制の時 (00-23) | 22 |
| %i | 分 (00-59) | 33 |
| %I | 12 時間制の時 (01-12) | 10 |
| %j | 通算日 (001-366) | 002 |
| %k | 24 時間制の時 (00-23) | 14 |
| %l | 12 時間制の時 (01-12) | 09 |
| %m | 月を整数値で表現 (01-12) | 01 |
| %M | 月の完全名 (January-December) | January |
| %n | 改行文字 | |
| %p | AM/PM 表記 | PM |
| %Q | 四半期 (1-4) | 1 |
| %r | 12 時間制 HH:MM AM/PM 時刻、%h:%i %p と同等 | 10:30 PM |
| %R | 24 時間制 HH:MM 時刻、%H:%i と同等 | 22:33 |
| %s | 秒 (00-59) | 44 |
| %S | 秒 (00-59) | 44 |
| %t | 水平タブ文字 | |
| %T | ISO 8601 時刻形式 (HH:MM:SS)、%H:%i:%S と同等 | 22:33:44 |
| %u | 月曜を 1 とする ISO 8601 の曜日番号 (1-7) | 2 |
| %V | ISO 8601 週番号 (01-53) | 01 |
| %w | 日曜を 0 とする曜日番号 (0-6) | 2 |
| %W | 曜日の完全名 (Monday-Sunday) | Monday |
| %y | 年の下 2 桁 (00-99) | 18 |
| %Y | 年 | 2018 |
| %z | UTC からの時差 (+HHMM または -HHMM) | -0500 |
| %% | パーセント記号 % | % |
- ClickHouse v23.4 より前のバージョンでは、フォーマット対象が Date、Date32、DateTime (いずれも秒の小数部を持たない) または精度 0 の DateTime64 の場合、
%fは単一のゼロ (0) を出力します。 - ClickHouse v25.1 より前のバージョンでは、
%fは固定 6 桁ではなく、DateTime64 の scale で指定された桁数だけ数字を出力します。 - ClickHouse v23.4 より前のバージョンでは、
%Mは月の完全名 (January-December) ではなく、分 (00-59) を出力します。
構文
エイリアス: DATE_FORMAT
引数
datetime— フォーマット対象の日付または日時。DateまたはDate32またはDateTimeまたはDateTime64format— 置換フィールドを含むフォーマット文字列。Stringtimezone— 任意。フォーマット結果の時刻に適用するタイムゾーン名。String
返される値
指定されたフォーマットに従って日付と時刻の値を返します。String
例
年のプレースホルダーを使って日付をフォーマットする
DateTime64 を小数秒付きでフォーマットする
タイムゾーンを含めてフォーマット
formatDateTimeInJodaSyntax
導入バージョン: v20.1
formatDateTime と似ていますが、MySQL スタイルではなく Joda スタイルで日時をフォーマットします。Joda Time のドキュメントを参照してください。
この関数と反対の処理を行う関数はparseDateTimeInJodaSyntaxです。
置換フィールドを使用することで、結果の文字列のパターンを定義できます。
置換フィールド:
| プレースホルダー | 説明 | 表現形式 | 例 |
|---|---|---|---|
| G | 紀元 | テキスト | AD |
| C | 世紀(紀元内) (>=0) | 数値 | 20 |
| Y | 年(紀元内) (>=0) | 年 | 1996 |
| x | 週付き年(未対応) | 年 | 1996 |
| w | 週付き年の週(未対応) | 数値 | 27 |
| e | 曜日 | 数値 | 2 |
| E | 曜日 | テキスト | Tuesday; Tue |
| y | 年 | 年 | 1996 |
| D | 年内通算日 | 数値 | 189 |
| M | 月 | 月 | July; Jul; 07 |
| d | 日(その月の) | 数値 | 10 |
| a | 午前/午後 | テキスト | PM |
| K | 午前/午後の時間 (0~11) | 数値 | 0 |
| h | 午前/午後の時計時刻 (1~12) | 数値 | 12 |
| H | 時(1 日のうちの 0~23) | 数値 | 0 |
| k | 時計時刻(1 日のうちの 1~24) | 数値 | 24 |
| m | 分(その時間の) | 数値 | 30 |
| s | 秒(その分の) | 数値 | 55 |
| S | 秒の小数部分 | 数値 | 978 |
| z | タイムゾーン | テキスト | Eastern Standard Time; EST |
| Z | タイムゾーンオフセット | ゾーン | -0800; -0812 |
| ' | テキスト用エスケープ | デリミタ | |
| '' | シングルクオート | リテラル | ' |
構文
引数
datetime— フォーマットする日付または日時。DateTimeまたはDateまたはDate32またはDateTime64format— Joda 形式の置換フィールドを使用するフォーマット文字列。Stringtimezone— オプション。フォーマットに用いるタイムゾーン名。String
戻り値
指定されたフォーマットに従って日時の値を返します。String
使用例
Joda 構文を使用して日時をフォーマットする
fromDaysSinceYearZero
導入バージョン: v23.11
紀元0年1月1日 からの経過日数が与えられると、ISO 8601 で定義される先発グレゴリオ暦における対応する日付を返します。
計算方法は MySQL の FROM_DAYS() 関数と同じです。結果が Date 型の表現範囲に収まらない場合、結果は未定義です。
構文
エイリアス: FROM_DAYS
引数
days— 西暦0年から経過した日数。UInt32
戻り値
西暦0年からの経過日数に対応する日付を返します。Date
例
西暦0年からの経過日数を日付に変換する
fromDaysSinceYearZero32
導入バージョン: v23.11
西暦 0000 年 1 月 1 日 から経過した日数を指定すると、ISO 8601 で定義されるプロレプティック・グレゴリオ暦における対応する日付を返します。
計算は MySQL の FROM_DAYS() 関数と同じです。結果が Date32 型の範囲内で表現できない場合、結果は未定義です。
構文
引数
days— 紀元0年から経過した日数。UInt32
戻り値
紀元0年から経過した日数に対応する日付を返します。Date32
例
紀元0年からの経過日数を日付に変換する
fromModifiedJulianDay
導入: v21.1
修正ユリウス日番号を、テキスト形式 YYYY-MM-DD による先発グレゴリオ暦の日付に変換します。この関数は、-678941 から 2973483 までの日番号をサポートします(それぞれ 0000-01-01 および 9999-12-31 を表します)。サポート対象範囲外の日番号が指定された場合は、例外をスローします。
構文
引数
day— 修正ユリウス日 (Modified Julian Day) 番号。(U)Int*
戻り値
日付の文字列表現を返します。String
例
修正ユリウス日を日付に変換する
fromModifiedJulianDayOrNull
導入バージョン: v21.1
fromModifiedJulianDay() と似ていますが、例外をスローする代わりに NULL を返します。
構文
引数
day— 修正ユリウス日 (Modified Julian Day) 番号。(U)Int*
戻り値
有効な day 引数の場合は日付をテキスト形式で返し、それ以外の場合は null を返します。Nullable(String)
例
修正ユリウス日を null を考慮して日付に変換する
fromUTCTimestamp
導入: v22.1
UTC タイムゾーンの日時または日付の値を、指定したタイムゾーンの日時または日付の値に変換します。この関数は主に Apache Spark などのフレームワークとの互換性のために用意されています。
構文
別名: from_utc_timestamp
引数
datetime— 日付または日時の定数値、もしくはそのような式。DateTimeまたはDateTime64time_zone— タイムゾーンを表す String 型の定数値または式。String
返される値
指定したタイムゾーンの DateTime/DateTime64 を返します。DateTime または DateTime64
例
UTC タイムゾーンを指定したタイムゾーンに変換する
fromUnixTimestamp
導入バージョン: v20.8
この関数は Unix タイムスタンプをカレンダー日付と一日の時刻に変換します。
2 つの方法で呼び出すことができます:
Integer型の引数を 1 つだけ与えた場合、DateTime型の値を返します。つまり、toDateTimeと同様に動作します。- 1 番目の引数が
Integer、Date、Date32、DateTime、またはDateTime64型の値であり、2 番目の引数が定数フォーマット文字列、3 番目の引数が省略可能な定数タイムゾーン文字列である 2 つまたは 3 つの引数を与えた場合、この関数はString型の値を返します。つまり、formatDateTimeと同様に動作します。 この場合、MySQL の datetime フォーマット形式が使用されます。
構文
別名: FROM_UNIXTIME
引数
timestamp— Unix タイムスタンプ、または日付/日時の値。(U)Int*またはDateまたはDate32またはDateTimeまたはDateTime64format— オプション。出力形式を指定するための定数フォーマット文字列。Stringtimezone— オプション。タイムゾーンを表す定数文字列。String
戻り値
1 つの引数で呼び出した場合は DateTime を返し、2 つまたは 3 つの引数で呼び出した場合は String を返します。DateTime または String
例
Unix タイムスタンプを DateTime に変換
Unix タイムスタンプを指定フォーマットで変換
fromUnixTimestampInJodaSyntax
導入バージョン: v23.1
この関数は Unix タイムスタンプを日付および一日の時刻に変換します。
この関数には 2 通りの呼び出し方があります。
1 つの引数として型 Integer を受け取った場合、型 DateTime の値を返します。つまり、toDateTime と同様に動作します。
1 番目の引数が型 Integer、Date、Date32、DateTime、または DateTime64 の値であり、2 番目の引数が定数のフォーマット文字列、3 番目の引数が省略可能な定数のタイムゾーン文字列である 2 個または 3 個の引数を受け取った場合、この関数は型 String の値を返します。つまり、formatDateTimeInJodaSyntax と同様に動作します。この場合、Joda datetime format style が使用されます。
構文
引数
timestamp— Unix タイムスタンプまたは日付/時刻の値。(U)Int*またはDateまたはDate32またはDateTimeまたはDateTime64format— 省略可。出力フォーマット用の Joda 構文に従った定数フォーマット文字列。Stringtimezone— 省略可。タイムゾーンを表す定数文字列。String
返り値
1 つの引数で呼び出された場合は時刻付きの日付を返し、2 つまたは 3 つの引数で呼び出された場合は文字列を返します。} DateTime または String
使用例
Unix タイムスタンプを Joda フォーマットで整形する
makeDate
導入バージョン: v22.6
次のいずれかから Date を生成します:
- 年・月・日
- 年・年内通し日(年内の日数)
構文
引数
year— 年(西暦)。(U)Int*またはFloat*またはDecimalmonth— 月番号 (1-12)。(U)Int*またはFloat*またはDecimalday— 月内の日 (1-31)。(U)Int*またはFloat*またはDecimalday_of_year— 年内通算日 (1-365)。(U)Int*またはFloat*またはDecimal
戻り値
指定された引数から構築された Date 型の値を返します。
例
年・月・日から Date を生成
年と年内通算日から日付を生成
makeDate32
導入バージョン: v22.6
次のいずれかの指定から Date32 を作成します:
- 年・月・日
- 年・年内通算日
構文
引数
year— 年を表す数値。(U)Int*またはFloat*またはDecimalmonth— 月を表す数値 (1-12)。(U)Int*またはFloat*またはDecimalday— 月の日 (1-31)。(U)Int*またはFloat*またはDecimalday_of_year— その年の通算日 (1-365)。(U)Int*またはFloat*またはDecimal
戻り値
指定された引数から構築された Date32 型の値を返します。Date32
例
year, month, day から Date32 を作成
年と通し日から Date32 を生成
makeDateTime
導入: v22.6
年、月、日、時、分、秒から、オプションのタイムゾーンを指定して DateTime を生成します。
構文
引数
year— 年。(U)Int*またはFloat*またはDecimalmonth— 月 (1-12)。(U)Int*またはFloat*またはDecimalday— 日 (1-31)。(U)Int*またはFloat*またはDecimalhour— 時 (0-23)。(U)Int*またはFloat*またはDecimalminute— 分 (0-59)。(U)Int*またはFloat*またはDecimalsecond— 秒 (0-59)。(U)Int*またはFloat*またはDecimaltimezone— タイムゾーン名。String
戻り値
指定された引数から DateTime 値を構築して返します。DateTime
例
year, month, day, hour, minute, second から DateTime を構築
makeDateTime64
導入バージョン: v22.6
year、month、day、hour、minute、second から、オプションの fraction、precision、timezone を指定して DateTime64 を生成します。
構文
引数
year— 年を表す数値。(U)Int*またはFloat*またはDecimalmonth— 月を表す数値 (1-12)。(U)Int*またはFloat*またはDecimalday— 日を表す数値 (1-31)。(U)Int*またはFloat*またはDecimalhour— 時を表す数値 (0-23)。(U)Int*またはFloat*またはDecimalminute— 分を表す数値 (0-59)。(U)Int*またはFloat*またはDecimalsecond— 秒を表す数値 (0-59)。(U)Int*またはFloat*またはDecimalfraction— 秒の小数部分。(U)Int*またはFloat*またはDecimalprecision— 小数部分の桁数 (0-9)。UInt8timezone— タイムゾーン名。String
返される値
指定された引数から構築された DateTime64 値を返します。DateTime64
例
year, month, day, hour, minute, second から DateTime64 を構築
monthName
導入バージョン: v22.1
日付または日時の値から、月の名前を文字列として返します。
構文
引数
datetime— 日付または日時。DateまたはDate32またはDateTimeまたはDateTime64
戻り値
月名を返します。String
例
日付から月名を取得する
now
導入: v1.1
クエリ解析時点の現在の日時を返します。この関数は定数式です。
構文
別名: current_timestamp
引数
timezone— 省略可能。返される値に対するタイムゾーン名。String
戻り値
現在の日付と時刻を返します。DateTime
例
タイムゾーンを指定しないクエリ
タイムゾーン指定付きのクエリ
now64
導入バージョン: v20.1
クエリ解析時の現在の日時をサブ秒精度で返します。この関数は定数式です。
構文
引数
scale— 省略可能。ティックサイズ(精度)。10^-precision 秒単位。有効範囲: [0 : 9]。一般的な値は 3(デフォルト、ミリ秒)、6(マイクロ秒)、9(ナノ秒)です。UInt8timezone— 省略可能。返される値のタイムゾーン名。String
返される値
サブ秒精度付きの現在の日時を返します。DateTime64
例
デフォルト精度とカスタム精度でのクエリ
nowInBlock
導入バージョン: v22.8
各データブロックを処理する瞬間の現在日時を返します。関数 now と異なり、この関数は定数式ではないため、長時間実行されるクエリではブロックごとに異なる値が返されます。
長時間実行される INSERT SELECT クエリで現在時刻を生成する用途に、この関数を使用するのが有用です。
構文
引数
timezone— 省略可能。返される値のタイムゾーン名。String
戻り値
各データブロックの処理時点の現在日時を返します。DateTime
使用例
now() 関数との違い
nowInBlock64
導入バージョン: v25.8
各データブロックの処理時点における現在日時をミリ秒単位で返します。関数 now64 と異なり、これは定数式ではなく、長時間実行されるクエリではブロックごとに異なる値が返されます。
この関数は、長時間実行される INSERT SELECT クエリで現在時刻を生成する用途に用いるのが適しています。
構文
引数
scale— 省略可能。ティックサイズ(精度)、すなわち 10^-precision 秒。指定可能な範囲は [0 : 9]。通常は 3(デフォルト、ミリ秒)、6(マイクロ秒)、9(ナノ秒)が使用されます。UInt8timezone— 省略可能。返される値のタイムゾーン名。String
返される値
各データブロックの処理時点における現在の日時を、サブ秒精度で返します。DateTime64
例
now64() 関数との違い
serverTimezone
導入バージョン: v23.6
サーバーのタイムゾーン、つまり timezone 設定の値を返します。
関数が分散テーブルのコンテキストで実行される場合は、各分片に対応した値を持つ通常のカラムを生成します。それ以外の場合は、定数値を返します。
構文
別名: serverTimeZone
引数
- なし。
戻り値
サーバーのタイムゾーンを String として返します。
例
使用例
subDate
導入バージョン: v23.9
指定された Date、日時、または日付/日時を表す文字列から、時間間隔を減算します。
減算結果がデータ型の範囲外になる場合、結果は未定義です。
構文
引数
datetime—intervalを減算する基準となる日付または日時。DateまたはDate32またはDateTimeまたはDateTime64interval— 減算する期間。Interval
戻り値
datetime から interval を減算して得られる日付または日時を返します。Date または Date32 または DateTime または DateTime64
使用例
日付から interval を減算する
subtractDays
導入バージョン: v1.1
Date、日時を含む DateTime、またはそれらを文字列で表現した値から、指定した日数を減算します。
構文
引数
datetime— 指定した日数を引く対象の日付または日時。DateまたはDate32またはDateTimeまたはDateTime64またはStringnum— 減算する日数。(U)Int*またはFloat*
返される値
datetime から num 日を減算した値を返します。型は Date または Date32 または DateTime または DateTime64 です。
例
異なる日付型から日数を減算する
代替の INTERVAL 構文を使用する
subtractHours
導入バージョン: v1.1
日付、日時、または日付/日時の文字列表現から、指定した時間数を減算します。
構文
引数
datetime— 指定した時間数を減算する対象となる日付または日時。DateまたはDate32またはDateTimeまたはDateTime64またはStringnum— 減算する時間数。(U)Int*またはFloat*
戻り値
datetime から num 時間を減算した値を返します。DateTime または DateTime64(3)
例
異なる日付/日時型から時間を減算する
代替の INTERVAL 構文の使用
subtractInterval
導入: v22.11
負の Interval を、別の Interval または Interval のタプルに加算します。
注意: 同じ型の Interval は 1 つの Interval にまとめられます。たとえば toIntervalDay(2) と toIntervalDay(1) が
渡された場合、結果は (2,1) ではなく (1) になります。
構文
引数
interval_1— 1 つ目のインターバル、またはインターバルのタプル。IntervalまたはTuple(Interval)interval_2— 符号を反転する 2 つ目のインターバル。Interval
戻り値
インターバルのタプル Tuple(T) を返します。
例
インターバルを減算する
subtractMicroseconds
導入: v22.6
日時型、または文字列表現の日時から、指定したマイクロ秒数を減算します。
構文
引数
datetime— 指定されたマイクロ秒数を減算する対象の日時。DateTimeまたはDateTime64またはStringnum— 減算するマイクロ秒数。(U)Int*またはFloat*
返される値
datetime から num マイクロ秒を減算した DateTime64 型の値を返します。
使用例
異なる日時型からマイクロ秒を減算する
別の INTERVAL 構文の使用
subtractMilliseconds
導入バージョン: v22.6
日時型、または文字列で表現された日時から、指定したミリ秒数を減算します。
構文
引数
datetime— 指定したミリ秒数を減算する対象となる日時値。DateTimeまたはDateTime64またはStringnum— 減算するミリ秒数。(U)Int*またはFloat*
返される値
datetime から num ミリ秒を引いた値を返します。型は DateTime64 です。
例
異なる日時型の値からミリ秒を減算する
代替の INTERVAL 構文を使用する
subtractMinutes
導入バージョン: v1.1
日付、日時、または文字列表現の日付/日時から、指定した分を減算します。
構文
引数
datetime— 指定した分数を減算する対象となる日付または日時。DateまたはDate32またはDateTimeまたはDateTime64またはStringnum— 減算する分数(分単位)。(U)Int*またはFloat*
返される値
datetime から num 分を引いた値を返します。戻り値の型は DateTime または DateTime64(3) です。
例
さまざまな日付型から分を減算する
別の INTERVAL 構文の使用
subtractMonths
導入バージョン: v1.1
日付、日時、または文字列として表現された日付/日時から、指定した月数を減算します。
構文
引数
datetime— 指定した月数を減算する対象の日付または日時。DateまたはDate32またはDateTimeまたはDateTime64またはStringnum— 減算する月数。(U)Int*またはFloat*
戻り値
datetime から num か月を引いた値を返します。型は Date または Date32 または DateTime または DateTime64
例
異なる日付型から月数を減算する
別の INTERVAL 構文の使用
subtractNanoseconds
導入: v20.1
日時型、または文字列表現の日時から、指定した数のナノ秒を減算します。
構文
引数
datetime— 指定したナノ秒数を差し引く対象の日時。DateTimeまたはDateTime64またはStringnum— 減算するナノ秒数。(U)Int*またはFloat*
戻り値
datetime から num ナノ秒を減算した値を返します。DateTime64
使用例
異なる日時型からナノ秒を減算する
代替の INTERVAL 構文の使用
subtractQuarters
導入バージョン: v20.1
日付、日時、または文字列形式の日付/日時から、指定した数の四半期分を減算します。
構文
引数
datetime— 指定した数の四半期を減算する対象の日付または日時。DateまたはDate32またはDateTimeまたはDateTime64またはStringnum— 減算する四半期数。(U)Int*またはFloat*
戻り値
datetime から num 四半期を引いた結果を返す。型は Date または Date32 または DateTime または DateTime64。
使用例
異なる日付型から四半期を減算する
別の INTERVAL 構文の使用
subtractSeconds
導入バージョン: v1.1
日付、日時、または文字列表現の日付/日時から指定した秒数を減算します。
構文
引数
datetime— 指定した秒数を差し引く対象の日付または日時。DateまたはDate32またはDateTimeまたはDateTime64またはStringnum— 減算する秒数。(U)Int*またはFloat*
戻り値
datetime から num 秒を引いた値を返します。DateTime または DateTime64(3)
使用例
異なる日付/日時型から秒数を減算する
別の INTERVAL 構文の使用
subtractTupleOfIntervals
導入バージョン: v22.11
日付または日時から、タプルで指定された複数のインターバルを順に減算します。
構文
引数
datetime— インターバルを減算する対象の日時。DateまたはDate32またはDateTimeまたはDateTime64intervals—datetimeから減算するインターバルのタプル。Tuple(Interval)
返される値
intervals を減算した結果の date を返します。Date または Date32 または DateTime または DateTime64
例
日付からインターバルのタプルを減算
subtractWeeks
導入バージョン: v1.1
指定した週数を、Date、日時を表す DateTime、または Date/日時の文字列表現から減算します。
構文
引数
datetime— 指定した週数を減算する対象の日付または日時。DateまたはDate32またはDateTimeまたはDateTime64またはStringnum— 減算する週数。(U)Int*またはFloat*
戻り値
datetime から num 週を減算した値を返す。Date または Date32 または DateTime または DateTime64
使用例
異なる日付型から週を減算する
別の INTERVAL 構文の使用
subtractYears
導入バージョン: v1.1
日付、日時、または文字列表現の日付/日時から、指定した年数を減算します。
構文
引数
datetime— 指定した年数を減算する対象の日付または日時。DateまたはDate32またはDateTimeまたはDateTime64またはStringnum— 減算する年数。(U)Int*またはFloat*
返される値
datetime から num 年を引いた値を返します。型は Date または Date32 または DateTime または DateTime64 です。
使用例
異なる日付型から年数を減算する
別の INTERVAL 構文の使用
timeDiff
導入バージョン: v23.4
2つの日付または日時値の差を秒単位で返します。
差は enddate - startdate として計算されます。
この関数は dateDiff('second', startdate, enddate) と同等です。
他の単位(時間、日、月など)で時間差を計算するには、代わりに dateDiff 関数を使用してください。
構文
引数
startdate— 減算する最初の時刻値(減数)。DateまたはDate32またはDateTimeまたはDateTime64enddate— そこから減算を行う 2 番目の時刻値(被減数)。DateまたはDate32またはDateTimeまたはDateTime64
戻り値
enddate と startdate の差を秒単位で返します。Int64
例
時間差を秒単位で計算する
時間差を計算し、時間単位に変換する
dateDiff を秒単位で使用した場合と同等
timeSlot
導入バージョン: v1.1
時刻を30分間隔の区間の開始時刻に丸めます。
この関数は拡張型である Date32 および DateTime64 の値を引数として受け取ることができますが、
通常の範囲(Date の場合は1970年から2149年、DateTime の場合は1970年から2106年)外の時刻を渡すと、誤った結果を返します。
構文
引数
time— 30 分幅の区間の開始時刻に丸める対象の時刻。DateTimeまたはDate32またはDateTime64time_zone— 省略可能。タイムゾーンを表すString型の定数値または式。String
戻り値
30 分幅の区間の開始時刻に丸められた時刻を返します。DateTime
例
時刻を 30 分単位の区間に丸める
timeSlots
導入バージョン: v1.1
StartTime から開始して Duration 秒間継続する時間間隔について、その間に含まれる時点を、Size 秒単位で切り捨てた時刻の配列として返します。Size はオプションのパラメータで、デフォルトは 1800(30 分)です。
これは、たとえば対応するセッション内のページビューを検索する場合などに必要となります。
DateTime64 の場合、戻り値のスケールは StartTime のスケールと異なることがあります。指定されたすべての引数のうち、最も大きいスケールが採用されます。
構文
引数
StartTime— 区間の開始時刻。DateTimeまたはDateTime64Duration— 区間の継続時間(秒単位)。UInt32またはDateTime64Size— 省略可能。タイムスロットのサイズ(秒単位)。既定値は 1800(30 分)。UInt32またはDateTime64
返される値
DateTime/DateTime64 の配列を返します(戻り値の型は StartTime の型と一致します)。DateTime64 の場合、戻り値のスケールは StartTime のスケールと異なることがあり、渡されたすべての引数の中で最大のスケールが採用されます。Array(DateTime) または Array(DateTime64)
例
区間に対してタイムスロットを生成する
timestamp
導入バージョン: v23.9
最初の引数 expr を型 DateTime64(6) に変換します。
2 番目の引数 expr_time が指定されている場合、変換後の値に指定された時間を加算します。
構文
引数
戻り値
expr を変換した値、または expr に時刻を加算した値を返します。DateTime64(6)
例
日付文字列を DateTime64(6) に変換する
日付文字列に時刻を追加する
timezone
導入バージョン: v21.4
現在のセッションのタイムゾーン名を返すか、タイムゾーンのオフセットまたは名前を正規のタイムゾーン名に変換します。
構文
別名: timeZone
引数
- なし。
戻り値
正準タイムゾーン名を String として返します。
例
使用例
timezoneOf
導入バージョン: v21.4
DateTime または DateTime64 型の値のタイムゾーン名を返します。
構文
エイリアス: timeZoneOf
引数
datetime— 型DateTimeまたはDateTime64の値。timezone— 省略可能。datetimeのタイムゾーンを変換する際の変換先タイムゾーン名。型String
返される値
datetime のタイムゾーン名を返します。型 String
例
使用例
timezoneOffset
導入バージョン: v21.6
UTC からのタイムゾーンオフセットを秒単位で返します。 この関数は、指定された日時における夏時間および過去のタイムゾーン変更を考慮します。
構文
別名: timeZoneOffset
引数
datetime— タイムゾーンオフセットを取得する対象のDateTime値。DateTimeまたはDateTime64
返り値
UTC からのオフセットを秒単位の Int32 で返します
例
使用例
toDayOfMonth
導入バージョン: v1.1
Date または DateTime から、その月における日(1〜31)を返します。
構文
エイリアス: DAY, DAYOFMONTH
引数
datetime— 日(その月の何日目か)を取得する対象となる日付または日時。DateまたはDate32またはDateTimeまたはDateTime64
返される値
指定した日付/時刻の「日(day of month)」を返します。型は UInt8 です。
例
使用例
toDayOfWeek
導入バージョン: v1.1
Date または DateTime の値に対して、その週の曜日番号を返します。
toDayOfWeek() の 2 引数形式では、週の開始曜日を Monday か Sunday のどちらにするか、
および戻り値の範囲を 0〜6 にするか 1〜7 にするかを指定できます。
| Mode | First day of week | Range |
|---|---|---|
| 0 | Monday | 1-7: Monday = 1, Tuesday = 2, ..., Sunday = 7 |
| 1 | Monday | 0-6: Monday = 0, Tuesday = 1, ..., Sunday = 6 |
| 2 | Sunday | 0-6: Sunday = 0, Monday = 1, ..., Saturday = 6 |
| 3 | Sunday | 1-7: Sunday = 1, Monday = 2, ..., Saturday = 7 |
構文
別名: DAYOFWEEK
引数
datetime— 曜日を取得する対象の日付または日時。DateまたはDate32またはDateTimeまたはDateTime64mode— 任意。週のモードを指定する整数 (0-3)。省略時のデフォルトは 0。UInt8timezone— 任意。変換に使用するタイムゾーン。String
戻り値
指定された Date または DateTime の曜日を返す。型は UInt8 です。
例
使用例
toDayOfYear
導入バージョン: v18.4
Date または DateTime 型の値に対して、その年の中での通算日 (1〜366) を返します。
構文
別名: DAYOFYEAR
引数
datetime— 年内通算日を取得する対象の日付または日時。DateまたはDate32またはDateTimeまたはDateTime64
戻り値
指定された Date または DateTime の年内通算日を返します。戻り値の型は UInt16 です。
例
使用例
toDaysSinceYearZero
導入バージョン: v23.9
指定した日付について、ISO 8601 で定義されるプロレプティック・グレゴリオ暦における 西暦 0000 年 1 月 1 日 から経過した日数を返します。
計算方法は MySQL の TO_DAYS 関数と同じです。
構文
別名: TO_DAYS
引数
date— 日付0000-01-01からの経過日数を計算する対象の日付または日時。DateまたはDate32またはDateTimeまたはDateTime64time_zone— タイムゾーン。String
戻り値
日付 0000-01-01 から経過した日数を返します。UInt32
使用例
年ゼロからの経過日数を計算する
toHour
導入バージョン: v1.1
DateTime または DateTime64 値の時(0-23)を返します。
構文
別名: HOUR
引数
datetime— 時を取得する対象の日時。DateTimeまたはDateTime64
返り値
datetime の時 (0-23) を返します。UInt8
例
使用例
toISOWeek
導入バージョン: v20.1
日付、または時刻を含む日付の ISO 週番号を返します。
これは互換性維持のための関数で、toWeek(date, 3) と等価です。
ISO 週では週の始まりは月曜日であり、その年の最初の週には 1 月 4 日が含まれます。
ISO 8601 によると、週番号は 1 から 53 の範囲に収まります。
年の始めや終わり付近の日付では、前の年または次の年の週番号が返される場合があることに注意してください。例えば、 2025 年 12 月 29 日は、2026 年 1 月 4 日を含む最初の週に属するため、週番号 1 を返します。
構文
引数
datetime— ISO 週番号を取得する基準となる日付または日時。DateまたはDateTimeまたはDate32またはDateTime64timezone— 省略可能。タイムゾーン。String
返される値
ISO 8601 規格に準拠した ISO 週番号を返します。1 から 53 までの数値を返します。戻り値の型は UInt8 です。
例
ISO 週番号を取得する
ISO 週番号が異なる年に属する場合がある
toISOYear
導入バージョン: v18.4
日付または日時を ISO 年番号に変換します。
構文
引数
datetime— 日付または日時の値。DateまたはDate32またはDateTimeまたはDateTime64
戻り値
入力値を ISO 年の番号に変換して返します。UInt16
例
日付値から ISO 年を取得する
toLastDayOfMonth
導入バージョン: v1.1
日付または日時を、その月の最終日に切り上げます。
戻り値の型は enable_extended_results_for_datetime_functions の設定により変更できます。
構文
別名: LAST_DAY
引数
value— 月の最終日に切り上げる対象となる日付または日時。DateまたはDate32またはDateTimeまたはDateTime64
返される値
指定された日付または日時に対応する月の最終日の日付を返します。Date
例
月の最終日への切り上げ
toLastDayOfWeek
導入バージョン: v23.5
日付または日時を、次の土曜日または日曜日に切り上げます。
戻り値の型は、enable_extended_results_for_datetime_functions を設定することで変更できます。
構文
引数
datetime— 変換対象の日付または日時。DateまたはDateTimeまたはDate32またはDateTime64mode—toWeek()関数で説明されているように、週の最初の曜日を決定します。デフォルトは0。UInt8timezone— 省略可能。変換に使用するタイムゾーン。指定されていない場合はサーバーのタイムゾーンが使用されます。String
戻り値
指定されたモードに応じて、指定された日付以降で最も近い土曜日または日曜日の日付を返します。型は Date または Date32 または DateTime または DateTime64 のいずれかです。
例
最も近い土曜日または日曜日への切り上げ
toMillisecond
導入: v24.2
DateTime または DateTime64 値のミリ秒部分 (0~999) を返します。
構文
別名: MILLISECOND
引数
datetime— ミリ秒を取得する対象の日時値。DateTimeまたはDateTime64
返される値
datetime の分内のミリ秒数 (0 - 59) を返します。UInt16
例
使用例
toMinute
導入バージョン: v1.1
Date または DateTime 型の値から、分(0〜59)を返します。
構文
別名: MINUTE
引数
datetime— 分を取得する対象の日時。DateTimeまたはDateTime64
戻り値
datetime の時刻の分 (0 - 59) を返します。UInt8
例
使用例
toModifiedJulianDay
導入バージョン: v21.1
テキスト形式 YYYY-MM-DD で表されたプロレプティック・グレゴリオ暦の日付を、Int32 型の修正ユリウス日に変換します。この関数は 0000-01-01 から 9999-12-31 までの日付をサポートします。引数が日付としてパースできない場合、または日付が不正な場合は例外をスローします。
構文
引数
date— 文字列形式の日付を表す値。StringまたはFixedString
戻り値
修正ユリウス日番号を返します。Int32
例
日付を修正ユリウス日番号に変換する
toModifiedJulianDayOrNull
導入: v21.1
toModifiedJulianDay() と同様ですが、例外をスローする代わりに NULL を返します。
構文
引数
date— 文字列表現の日付。StringまたはFixedString
戻り値
有効な date の場合は修正ユリウス日番号を、それ以外の場合は null を返します。Nullable(Int32)
例
null を考慮して日付を修正ユリウス日番号に変換する
toMonday
導入バージョン: v1.1
日付または日時を、同じ週の月曜日に切り捨てます。日付を返します。
戻り値の型は、enable_extended_results_for_datetime_functions を設定することで変更できます。
構文
引数
value— 週の月曜日に切り下げる対象となる日付または日時。DateまたはDate32またはDateTimeまたはDateTime64
戻り値
指定された日付または日時が属する週の月曜日の日付を返します。Date
例
週の月曜日に切り下げる
toMonth
導入バージョン: v1.1
Date または DateTime 型の値から、月 (1〜12) の値を返します。
構文
エイリアス: MONTH
引数
datetime— 月を取得する対象となる日付または日時。DateまたはDate32またはDateTimeまたはDateTime64
戻り値
指定された日付/時刻の「月」を返します。型は UInt8 です。
例
使用例
toMonthNumSinceEpoch
導入バージョン: v25.3
1970年からの経過月数を返します。
構文
引数
date— 日付または日時。Date、DateTime、またはDateTime64
戻り値
正の整数値
例
例
toQuarter
導入バージョン: v1.1
指定した Date または DateTime 値について、その年の四半期 (1~4) を返します。
構文
エイリアス: QUARTER
引数
datetime— 年の四半期を取得する対象となる日付または日時。Date、Date32、DateTime、DateTime64のいずれか。
返り値
指定された日付/日時が属する年の四半期を返します。型は UInt8 です。
例
使用例
toRelativeDayNum
導入バージョン: v1.1
日付または日時を、過去のある固定時点からの経過日数に変換します。
その正確な時点は実装依存であり、この関数を単体で使用することは想定されていません。
この関数の主な用途は、2 つの日付または日時間の日数差を計算することであり、たとえば toRelativeDayNum(dt1) - toRelativeDayNum(dt2) のように使用します。
構文
引数
date— 日付または日時。DateまたはDateTimeまたはDateTime64
戻り値
過去の固定基準時点からの経過日数を返します。UInt32
使用例
相対日数を取得する
toRelativeHourNum
導入バージョン: v1.1
日付または日時を、過去のある固定時点からの経過時間(時間数)に変換します。
その基準となる時刻は実装依存の詳細であり、この関数を単体で使用することは意図されていません。
この関数の主な用途は、2 つの日付または日時の間の時間数の差を計算することです。例: toRelativeHourNum(dt1) - toRelativeHourNum(dt2)。
構文
引数
date— 日付または日時。DateまたはDateTimeまたはDateTime64
戻り値
過去のある固定の基準時点からの経過時間(時間数)を返します。UInt32
例
相対的な時刻番号を取得する
toRelativeMinuteNum
導入バージョン: v1.1
日付または日時を、過去のある固定時点からの経過分数に変換します。
その時点がいつであるかは実装の詳細であり、この関数を単体で使用することは想定されていません。
この関数の主な目的は、2 つの日付または日時の差を分単位で計算することであり、例えば toRelativeMinuteNum(dt1) - toRelativeMinuteNum(dt2) のように使用します。
構文
引数
date— 日付または日時。DateまたはDateTimeまたはDateTime64
戻り値
過去の固定された基準点からの経過分数を返します。UInt32
例
相対的な分番号を取得する
toRelativeMonthNum
導入: v1.1
日付または日時を、過去のある固定時点から経過した月数に変換します。
その正確な基準時点は実装依存であり、この関数を単体で使用することは意図されていません。
この関数の主な用途は、2つの日付または日時の間の月数の差を計算することです。例: toRelativeMonthNum(dt1) - toRelativeMonthNum(dt2)。
構文
引数
date— 日付または日時。DateまたはDateTimeまたはDateTime64
返り値
過去の固定基準時点からの月数を返します。UInt32
使用例
相対月番号を取得する
toRelativeQuarterNum
導入バージョン: v1.1
日付、または日付と時刻を、過去のある固定時点から経過した四半期の数に変換します。
その正確な時点は実装上の詳細であり、この関数を単独で使用することは想定されていません。
この関数の主な用途は、2 つの日付または日時の間の四半期差を計算することです。例えば、toRelativeQuarterNum(dt1) - toRelativeQuarterNum(dt2) のように使用します。
構文
引数
date— 日付または日時。DateまたはDateTimeまたはDateTime64
戻り値
過去の固定基準時点からの四半期数を返します。UInt32
例
相対的な四半期番号を取得する
toRelativeSecondNum
導入バージョン: v1.1
日付、または日付と時刻を、過去のある固定時点からの経過秒数に変換します。
その正確な時点は実装の詳細に属するため、この関数を単体で使用することは想定されていません。
この関数の主な用途は、toRelativeSecondNum(dt1) - toRelativeSecondNum(dt2) のように、2 つの日付または日付と時刻同士の秒数差を計算することです。
構文
引数
date— 日付または日時。DateまたはDateTimeまたはDateTime64
戻り値
過去の固定の基準時点からの秒数を返します。UInt32
例
相対秒数を取得する
toRelativeWeekNum
導入バージョン: v1.1
日付または日時を、過去のある固定基準時点からの経過週数に変換します。
その基準時点の正確な値は実装依存であり、この関数を単体で使用することは想定されていません。
この関数の主な目的は、2 つの日付または日時の間の週数の差を計算することです。例: toRelativeWeekNum(dt1) - toRelativeWeekNum(dt2)。
構文
引数
date— 日付または日時。DateまたはDateTimeまたはDateTime64
戻り値
過去の固定基準点からの週数を返します。UInt32
例
相対週番号を取得する
toRelativeYearNum
導入バージョン: v1.1
日付または日時を、過去のある固定時点からの経過年数に変換します。
その正確な基準時刻は実装依存の詳細であり、この関数を単体で使用することは想定されていません。
この関数の主な用途は、2つの日付または日時の差を年数として計算することです。例: toRelativeYearNum(dt1) - toRelativeYearNum(dt2)。
構文
引数
date— 日付または日時。DateまたはDateTimeまたはDateTime64
戻り値
過去の固定基準点からの年数を返します。UInt16
例
相対的な年数を取得する
toSecond
導入バージョン: v1.1
DateTime または DateTime64 の値から秒の値(0〜59)を返します。
構文
エイリアス: SECOND
引数
datetime— 秒を取得する対象の日時。DateTimeまたはDateTime64
戻り値
datetime の分内の秒 (0 - 59) を返します。UInt8
例
使用例
toStartOfDay
導入バージョン: v1.1
日付時刻を、その日の開始時刻まで切り捨てます。
戻り値の型は、enable_extended_results_for_datetime_functions によって設定できます。
構文
引数
戻り値
日付と時刻をその日の開始時刻に切り捨てた値を返します。Date または DateTime または Date32 または DateTime64
例
一日の開始時刻への切り捨て
toStartOfFifteenMinutes
導入バージョン: v1.1
日時を直前の15分間隔の開始時刻に切り捨てます。
戻り値の型は、enable_extended_results_for_datetime_functions を設定することで変更できます。
構文
引数
datetime— 丸め対象の日付または日時。DateTimeまたはDateTime64
返り値
最も近い15分単位の開始時刻に丸められた日時を返します。値の型は DateTime または DateTime64。
使用例
例
toStartOfFiveMinutes
導入バージョン: v22.6
日時を直前の 5 分単位区間の開始時刻に切り下げます。
戻り値の型は、enable_extended_results_for_datetime_functions を設定することで変更できます。
構文
エイリアス: toStartOfFiveMinute
引数
datetime— 丸め対象の日時。DateTimeまたはDateTime64
返り値
最も近い5分単位の開始時刻に丸めた日時を返します。型は DateTime または DateTime64 です。
使用例
例
toStartOfHour
導入バージョン: v1.1
日時を、その時間の先頭(ちょうどの時刻)に切り下げます。
戻り値の型は、enable_extended_results_for_datetime_functions を設定することで変更できます。
構文
引数
datetime— 丸め対象の日時。DateTimeまたはDateTime64
返り値
時刻を直前の時間の開始時刻に切り下げた日時を返します。DateTime または DateTime64
使用例
時間の開始時刻への切り下げ
toStartOfISOYear
導入バージョン: v1.1
日付または日時を、その ISO 年の最初の日まで切り捨てます。ISO 年は通常の暦年と異なる場合があります。詳細は ISO week date を参照してください。
戻り値の型は、enable_extended_results_for_datetime_functions によって設定できます。
構文
引数
value— ISO 年の初日に切り捨てる対象となる日付または日時。DateまたはDate32またはDateTimeまたはDateTime64
返される値
指定した日付または日時に対応する ISO 年の初日を返します。Date
例
ISO 年の初日への切り捨て
toStartOfInterval
導入バージョン: v20.1
この関数は、toStartOfInterval(date_or_date_with_time, INTERVAL x unit [, time_zone]) という構文により、他の toStartOf*() 関数を一般化したものです。
たとえば、
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)と同じ結果を返します。
計算は特定の時点を基準として実行されます:
| Interval | 開始点 |
|---|---|
| YEAR | year 0 |
| QUARTER | 1900 Q1 |
| MONTH | 1900 January |
| WEEK | 1970, 1st week (01-05) |
| DAY | 1970-01-01 |
| HOUR | (*) |
| MINUTE | 1970-01-01 00:00:00 |
| SECOND | 1970-01-01 00:00:00 |
| MILLISECOND | 1970-01-01 00:00:00 |
| MICROSECOND | 1970-01-01 00:00:00 |
| NANOSECOND | 1970-01-01 00:00:00 |
| (*) hour intervals are special: the calculation is always performed relative to 00:00:00 (midnight) of the current day. つまり、 | |
| 有用なのは 1〜23 時の値のみです。 |
単位として WEEK が指定された場合、toStartOfInterval は週の開始日を月曜日とみなします。これは、デフォルトでは週の開始日が日曜日である toStartOfWeek 関数とは動作が異なる点に注意してください。
2 つ目のオーバーロードは、TimescaleDB の time_bucket() 関数および PostgreSQL の date_bin() 関数をエミュレートします。
構文
別名: time_bucket, date_bin
引数
value— 切り下げ対象の日付または日時の値。DateまたはDateTimeまたはDateTime64x— インターバルの長さを表す数値。 -unit— インターバルの単位: YEAR, QUARTER, MONTH, WEEK, DAY, HOUR, MINUTE, SECOND, MILLISECOND, MICROSECOND, NANOSECOND。 -time_zone— 省略可。タイムゾーン名を表す文字列。 -origin— 省略可。計算の起点(第 2 オーバーロードでのみ有効)。
返される値
入力値を含むインターバルの開始時点を返します。DateTime
例
基本的なインターバルへの丸め
起点の利用
toStartOfMicrosecond
導入バージョン: v22.6
日時をマイクロ秒境界まで切り捨てます。
構文
引数
datetime— 日付と時刻。DateTime64timezone— オプション。返される値のタイムゾーン。指定しない場合、関数はvalueパラメータのタイムゾーンを使用します。String
戻り値
サブマイクロ秒精度を持つ入力値 DateTime64
例
タイムゾーンを指定しないクエリ
タイムゾーンを指定したクエリ
toStartOfMillisecond
導入バージョン: v22.6
日時をミリ秒単位に切り捨てます。
構文
引数
datetime— 日付と時刻。DateTime64timezone— 省略可能。返される値のタイムゾーン。指定されていない場合、関数はvalueパラメータのタイムゾーンを使用します。String
返される値
サブミリ秒精度を含む入力値。DateTime64
例
タイムゾーンを指定しないクエリ
タイムゾーン付きのクエリ
toStartOfMinute
導入バージョン: v1.1
日時を、その分の開始時点に切り下げます。
戻り値の型は、enable_extended_results_for_datetime_functions を設定することで変更できます。
構文
引数
datetime— 切り捨て対象の日時。DateTimeまたはDateTime64
戻り値
指定した日時を、その分の開始時刻に切り捨てて返します。DateTime または DateTime64
例
分の開始時刻への切り捨て
toStartOfMonth
導入バージョン: v1.1
日付または日時を、その月の1日に切り捨てます。
戻り値の型は、enable_extended_results_for_datetime_functions の設定によって変更できます。
構文
引数
value— 月の初日に切り捨てる対象となる日付または日時。DateまたはDate32またはDateTimeまたはDateTime64
返り値
指定された日付または日時が属する月の1日を返します。Date
例
月の初日への切り捨て
toStartOfNanosecond
導入バージョン: v22.6
日時をナノ秒単位に切り捨てます。
構文
引数
datetime— 日付と時刻。DateTime64timezone— 省略可能。返される値のタイムゾーンを指定します。指定しない場合、関数はvalueパラメータのタイムゾーンを使用します。String
返される値
ナノ秒を含む入力値。DateTime64
例
タイムゾーン指定なしのクエリ
タイムゾーン付きクエリ
toStartOfQuarter
導入バージョン: v1.1
日付または日時を、その四半期の初日に切り捨てます。四半期の初日は、1月1日、4月1日、7月1日、または10月1日のいずれかです。
戻り値の型は、enable_extended_results_for_datetime_functions を設定することで変更できます。
構文
引数
value— 四半期の初日に切り捨てる対象の日付または日時。DateまたはDate32またはDateTimeまたはDateTime64
戻り値
指定した日付または日時に対する四半期の初日となる日付を返します。Date
例
四半期の初日への切り捨て
toStartOfSecond
導入バージョン: v20.5
日時を秒単位に切り捨てます。
構文
引数
datetime— サブ秒を切り捨てる対象の日時。DateTime64timezone— 省略可能。返される値に適用するタイムゾーン。指定されていない場合、関数はvalueパラメータのタイムゾーンを使用します。String
戻り値
サブ秒を切り捨てた入力値を返します。DateTime64
例
タイムゾーンを指定しないクエリ
タイムゾーン指定のクエリ
toStartOfTenMinutes
導入バージョン: v20.1
日時を、その時刻を含む10分単位の区切りの開始時刻に切り下げます。
戻り値の型は、enable_extended_results_for_datetime_functions を設定することで変更できます。
構文
引数
datetime— 時刻付きの日付。DateTimeまたはDateTime64
戻り値
最も近い 10 分単位の区切りの開始時刻に丸めた時刻付き日付を返します。DateTime または DateTime64
例
例
toStartOfWeek
導入バージョン: v20.1
日付、または日時を直前(同日を含む)の日曜日または月曜日に切り捨てます。
戻り値の型は、enable_extended_results_for_datetime_functions を設定することで変更できます。
構文
引数
datetime— 変換対象の日付または日時。DateまたはDateTimeまたはDate32またはDateTime64mode—toWeek()関数で説明されているとおり、週の開始曜日を決定します。デフォルトは0。UInt8timezone— 変換に使用するタイムゾーン。指定しない場合、サーバーのタイムゾーンが使用されます。String
戻り値
指定されたモードに応じて、指定した日付と同日またはそれ以前で最も近い日曜日または月曜日の日付を返します。Date または Date32 または DateTime または DateTime64
例
直近の日曜日または月曜日への切り捨て
toStartOfYear
導入バージョン: v1.1
日付または日時を、その年の最初の日に切り捨てます。結果を Date オブジェクトとして返します。
戻り値の型は、enable_extended_results_for_datetime_functions を設定することで変更できます。
構文
引数
value— 切り捨て対象の日付または日付と時刻。DateまたはDate32またはDateTimeまたはDateTime64
戻り値
指定された日付/日時に対応する年の最初の日を返します。戻り値の型は Date です。
例
年の最初の日に切り捨て
toTimeWithFixedDate
導入バージョン: v1.1
日付または日時から時刻部分を抽出します。
返される結果は固定された基準時刻(現在は 1970-01-02)からのオフセットですが、
この基準時刻の正確な値は実装上の詳細であり、将来変更される可能性があります。
したがって、toTime を単体で使用すべきではありません。
この関数の主な目的は、2 つの日付または日時同士の時刻の差分を計算することです。例えば、toTime(dt1) - toTime(dt2) のように使用します。
構文
引数
date— 時刻に変換する日付。DateまたはDateTimeまたはDateTime64timezone— 省略可能。返される値のタイムゾーン。String
返り値
日付または日時から、固定された基準時点(現在は 1970-01-02)へのオフセットとしての時間成分を返します。DateTime
例
2 つの日付の時間差を計算する
toTimezone
導入バージョン: v1.1
DateTime または DateTime64 を指定したタイムゾーンに変換します。
データの内部値(UNIX 秒)は変更されません。
変更されるのは値のタイムゾーン属性と値の文字列表現のみです。
構文
別名: toTimeZone
引数
date— 変換する値。DateTimeまたはDateTime64timezone— 変換先のタイムゾーン名。String
戻り値
入力と同じタイムスタンプを、指定したタイムゾーンを付加して返します。DateTime または DateTime64
例
使用例
toUTCTimestamp
導入バージョン: v23.8
特定のタイムゾーンに属する日付(Date)または日時(時刻付き DateTime)を、UTC タイムゾーンのタイムスタンプに変換します。この関数は主に Apache Spark や類似のフレームワークとの互換性のために提供されています。
構文
別名: to_utc_timestamp
引数
datetime— 日付または日時型の定数値、もしくはそのような値を返す式。DateTimeまたはDateTime64time_zone— タイムゾーンを表す String型の定数値、もしくはそのような値を返す式。String
返される値
UTC タイムゾーンでの日付または日時を返します。DateTime または DateTime64
使用例
タイムゾーンを UTC に変換する
toUnixTimestamp
導入バージョン: v1.1
String、Date、DateTime を Unix タイムスタンプ(1970-01-01 00:00:00 UTC からの経過秒数)を表す UInt32 に変換します。
構文
引数
date— 変換する値。Date、Date32、DateTime、DateTime64、Stringのいずれか。timezone— オプション。変換に使用するタイムゾーンです。指定しない場合はサーバーのタイムゾーンが使用されます。String
返される値
Unix タイムスタンプを返します。UInt32
例
使用例
toWeek
導入バージョン: v20.1
この関数は、date または datetime に対する週番号を返します。toWeek() の 2 引数形式では、週の開始曜日を日曜日または月曜日のどちらにするか、および戻り値の範囲を 0~53 にするか 1~53 にするかを指定できます。
toISOWeek() は互換性のための関数であり、toWeek(date,3) と等価です。
次の表は、mode 引数がどのように動作するかを示します。
| Mode | First day of week | Range | Week 1 is the first week ... |
|---|---|---|---|
| 0 | Sunday | 0-53 | この年に日曜日を含む週 |
| 1 | Monday | 0-53 | この年に 4 日以上を含む週 |
| 2 | Sunday | 1-53 | この年に日曜日を含む週 |
| 3 | Monday | 1-53 | この年に 4 日以上を含む週 |
| 4 | Sunday | 0-53 | この年に 4 日以上を含む週 |
| 5 | Monday | 0-53 | この年に月曜日を含む週 |
| 6 | Sunday | 1-53 | この年に 4 日以上を含む週 |
| 7 | Monday | 1-53 | この年に月曜日を含む週 |
| 8 | Sunday | 1-53 | 1 月 1 日を含む週 |
| 9 | Monday | 1-53 | 1 月 1 日を含む週 |
意味が「この年に 4 日以上を含む週」である mode 値では、週番号は ISO 8601:1988 に従って付番されます:
- 1 月 1 日を含む週が、新しい年側の日付を 4 日以上含んでいる場合、その週が第 1 週です。
- それ以外の場合、その週は前年の最終週となり、その次の週が第 1 週です。
意味が「1 月 1 日を含む週」である mode 値では、1 月 1 日を含む週が第 1 週になります。
その週が新しい年側の日付を何日含んでいるかは問いません。1 日だけであってもかまいません。
つまり、12 月の最終週が翌年の 1 月 1 日を含んでいる場合、その週は翌年の第 1 週となります。
最初の引数は、parseDateTime64BestEffort() がサポートする形式の String で指定することもできます。文字列引数のサポートは、特定のサードパーティ製ツールが期待する MySQL との互換性のためにのみ存在します。将来的に、文字列引数のサポートは新しい MySQL 互換性設定に依存するようになる可能性があり、また文字列のパースは一般的に遅いため、使用しないことを推奨します。
構文
エイリアス: week
引数
datetime— 週番号を取得する対象の日付または日時。DateまたはDateTimemode— 任意。0から9のモード値で、週の開始曜日と週番号の範囲を決定します。デフォルトは0。time_zone— 任意。タイムゾーン。String
戻り値
指定したモードに従った週番号を返します。UInt32
例
異なるモードで週番号を取得する
toYYYYMM
導入バージョン: v1.1
日付または日時を、年と月の番号 (YYYY * 100 + MM) を表す UInt32 型の数値に変換します。
2 つ目の省略可能なタイムゾーン引数を指定できます。指定する場合、タイムゾーンは文字列定数でなければなりません。
この関数は YYYYMMDDToDate() 関数の逆関数です。
構文
引数
datetime— 変換対象の日付または日時の値。DateまたはDate32またはDateTimeまたはDateTime64timezone— 省略可能。変換に使用するタイムゾーン。指定する場合、タイムゾーンは文字列リテラルでなければなりません。String
戻り値
年と月 (YYYY * 100 + MM) を表す UInt32 型の数値を返します。UInt32
例
現在の日付を YYYYMM 形式に変換
toYYYYMMDD
導入バージョン: v1.1
日付、または時刻付きの日付を、年・月・日を含む UInt32 型の数値(YYYY * 10000 + MM * 100 + DD)に変換します。第2引数としてタイムゾーンをオプションで受け取ります。指定する場合、タイムゾーンは文字列定数である必要があります。
構文
引数
datetime— 変換対象の日付または日時。DateまたはDate32またはDateTimeまたはDateTime64timezone— 省略可能。変換に使用するタイムゾーン。指定する場合は、文字列定数である必要があります。String
戻り値
年・月・日を含む UInt32 型の値を返します (YYYY * 10000 + MM * 100 + DD)。UInt32
例
現在の日付を YYYYMMDD 形式に変換する
toYYYYMMDDhhmmss
導入バージョン: v1.1
日付または日時を、年・月・日・時・分・秒を含む UInt64 型の数値(YYYY * 10000000000 + MM * 100000000 + DD * 1000000 + hh * 10000 + mm * 100 + ss)に変換します。
第 2 引数としてオプションのタイムゾーン引数を受け取れます。指定する場合、タイムゾーンは文字列定数である必要があります。
構文
引数
datetime— 変換対象の日付または日時。DateまたはDate32またはDateTimeまたはDateTime64timezone— 省略可能。変換に使用するタイムゾーン。指定する場合、タイムゾーンは文字列リテラルでなければなりません。String
戻り値
年、月、日、時、分、秒を含む UInt64 型の数値を返します (YYYY * 10000000000 + MM * 100000000 + DD * 1000000 + hh * 10000 + mm * 100 + ss)。UInt64
使用例
現在の日付と時刻を YYYYMMDDhhmmss 形式に変換する
toYear
導入バージョン: v1.1
Date または DateTime 型の値から西暦の年を返します。
構文
エイリアス: YEAR
引数
datetime— 年を取得する対象の日付または日時の値。DateまたはDate32またはDateTimeまたはDateTime64
戻り値
指定された Date または DateTime の年を返します。型は UInt16 です。
例
使用例
toYearNumSinceEpoch
導入バージョン: v25.3
1970 年からの経過年数を返します。
構文
引数
date— 変換する日付または日時の値。DateまたはDateTimeまたはDateTime64
返り値
正の整数値
使用例
例
toYearWeek
導入バージョン: v20.1
日付に対する年と週番号を返します。年の最初および最後の週については、結果に含まれる年が、引数として渡された日付の年と異なる場合があります。
mode 引数は、toWeek() の mode 引数と同様に動作します。
警告: toYearWeek() が返す週番号は、toWeek() が返す値と異なる場合があります。toWeek() は常に与えられた年のコンテキストで週番号を返し、toWeek() が 0 を返す場合、toYearWeek() は前の年の最終週に対応する値を返します。下記の例にある prev_yearWeek を参照してください。
最初の引数は、parseDateTime64BestEffort() でサポートされている形式の String として指定することもできます。文字列引数のサポートは、一部のサードパーティーツールが想定している MySQL との互換性のためだけに存在します。将来的には、新しい MySQL 互換性の SETTING に依存するように変更される可能性があること、また一般に文字列のパースは遅いことから、使用しないことを推奨します。
構文
エイリアス: yearweek
引数
datetime— 年と週番号を取得する対象の日付、または日時。DateまたはDateTimemode— 省略可能。0から9のモード値で、週の開始曜日と週番号の範囲を決定する。デフォルトは0。timezone— 省略可能。タイムゾーン。String
戻り値
年と週番号を結合した整数値を返す。UInt32
例
異なる mode での year-week の組み合わせを取得する
today
導入バージョン: v1.1
クエリ解析時点での現在の日付を返します。toDate(now()) と同じです。
構文
別名: curdate, current_date
引数
- なし
戻り値
現在の日付 Date を返します。
例
使用例
yesterday
導入バージョン: v1.1
引数を取らず、クエリ解析処理のいずれかの時点における昨日の日付を返します。
構文
引数
- なし。
戻り値
昨日の日付を返します。Date
例
昨日の日付を取得する