日付と時間を扱うための関数
このセクションのほとんどの関数は、オプションのタイムゾーン引数を受け付けます。例: Europe/Amsterdam
。この場合、指定されたタイムゾーンがローカル(デフォルト)のものではなく使用されます。
例
makeDate
Dateを作成します。
- 年、月、日引数から、または
- 年と年の日数引数から。
構文
エイリアス:
MAKEDATE(year, month, day);
MAKEDATE(year, day_of_year);
引数
year
— 年。 Integer, Float または Decimal。month
— 月。 Integer, Float または Decimal。day
— 日。 Integer, Float または Decimal。day_of_year
— 年の日数。 Integer, Float または Decimal。
返される値
- 引数から作成された日付。Date。
例
年、月、日から日付を作成します。
結果:
年と年の日数引数から日付を作成します。
結果:
makeDate32
年、月、日(またはオプションで年と日)からDate32タイプの日付を作成します。
構文
引数
year
— 年。 Integer, Float または Decimal。month
— 月(オプション)。 Integer, Float または Decimal。day
— 日。 Integer, Float または Decimal。
month
が省略されている場合、day
には1
から365
の値を取る必要があります。それ以外の場合は、1
から31
の値を取る必要があります。
返される値
- 引数から作成された日付。Date32。
例
年、月、日から日付を作成します。
クエリ:
結果:
年と年の日数から日付を作成します。
クエリ:
結果:
makeDateTime
年、月、日、時、分、秒の引数からDateTimeを作成します。
構文
引数
year
— 年。Integer, Float または Decimal。month
— 月。Integer, Float または Decimal。day
— 日。Integer, Float または Decimal。hour
— 時。Integer, Float または Decimal。minute
— 分。Integer, Float または Decimal。second
— 秒。Integer, Float または Decimal。timezone
— 返される値のタイムゾーン(オプション)。
返される値
- 引数から作成された時間を伴う日付。DateTime。
例
結果:
makeDateTime64
コンポーネントからDateTime64データ型の値を作成します: 年、月、日、時、分、秒。オプションのサブ秒精度を含みます。
構文
引数
year
— 年(0-9999)。 Integer, Float または Decimal。month
— 月(1-12)。 Integer, Float または Decimal。day
— 日(1-31)。 Integer, Float または Decimal。hour
— 時間(0-23)。 Integer, Float または Decimal。minute
— 分(0-59)。 Integer, Float または Decimal。second
— 秒(0-59)。 Integer, Float または Decimal。precision
— サブ秒コンポーネントの精度(0-9)のオプション。 Integer。
返される値
- 提供された引数から作成された日付と時間。DateTime64。
例
timestamp
最初の引数'exp'をDateTime64(6)型に変換します。 第二の引数'expr_time'が提供される場合、指定された時間を変換された値に追加します。
構文
エイリアス: TIMESTAMP
引数
例
結果:
結果:
返される値
- DateTime64(6)
timeZone
現在のセッションのタイムゾーンを返します。すなわち、設定 session_timezone の値です。 関数が分散テーブルのコンテキストで実行されると、各シャードに関連した値を持つ通常のカラムを生成します。それ以外の場合は、定数値を生成します。
構文
エイリアス: timezone
.
返される値
- タイムゾーン。String。
例
結果:
参照
serverTimeZone
サーバーのタイムゾーンを返します。すなわち、設定 timezone の値です。 関数が分散テーブルのコンテキストで実行されると、各シャードに関連した値を持つ通常のカラムを生成します。それ以外の場合は、定数値を生成します。
構文
エイリアス: serverTimezone
.
返される値
- タイムゾーン。String。
例
結果:
参照
toTimeZone
日付または時間を伴う日付を指定されたタイムゾーンに変換します。データの内部値(Unix秒数)は変更せず、値のタイムゾーン属性と値の文字列表現のみが変更されます。
構文
エイリアス: toTimezone
.
引数
value
— 時間または日付と時間。DateTime64。timezone
— 返される値のタイムゾーン。String。この引数は定数です。なぜなら、toTimezone
はカラムのタイムゾーンを変更するからです(タイムゾーンはDateTime*
タイプの属性です)。
返される値
- 日付と時間。DateTime。
例
結果:
参照
- formatDateTime - 非定数タイムゾーンをサポートします。
- toString - 非定数タイムゾーンをサポートします。
timeZoneOf
DateTimeまたはDateTime64データ型のタイムゾーン名を返します。
構文
エイリアス: timezoneOf
.
引数
value
— 日付と時間。DateTimeまたはDateTime64。
返される値
- タイムゾーン名。String。
例
結果:
timeZoneOffset
UTCから秒単位のタイムゾーンオフセットを返します。 関数はサマータイムや指定された日付と時間における歴史的なタイムゾーンの変更を考慮します。 オフセットを計算するためにIANAタイムゾーンデータベースが使用されます。
構文
エイリアス: timezoneOffset
.
引数
value
— 日付と時間。DateTimeまたはDateTime64。
返される値
- UTCからのオフセット(秒)。Int32。
例
結果:
toYear
日付または時間を伴う日付の年のコンポーネント(西暦)を返します。
構文
エイリアス: YEAR
引数
value
- Date、Date32、DateTimeまたはDateTime64
返される値
- 指定された日付/時間の年。UInt16。
例
結果:
toQuarter
日付または時間を伴う日付の四半期(1-4)を返します。
構文
エイリアス: QUARTER
引数
value
- Date、Date32、DateTimeまたはDateTime64
返される値
- 指定された日付/時間の年の四半期(1, 2, 3または4)。UInt8。
例
結果:
toMonth
日付または時間を伴う日付の月のコンポーネント(1-12)を返します。
構文
エイリアス: MONTH
引数
value
- Date、Date32、DateTimeまたはDateTime64
返される値
- 指定された日付/時間の年の月(1 - 12)。UInt8。
例
結果:
toDayOfYear
日付または時間を伴う日付の年内の日数(1-366)を返します。
構文
エイリアス: DAYOFYEAR
引数
value
- Date、Date32、DateTimeまたはDateTime64
返される値
- 指定された日付/時間の年の日(1 - 366)。UInt16。
例
結果:
toDayOfMonth
日付または時間を伴う日付のその月の日数(1-31)を返します。
構文
エイリアス: DAYOFMONTH
, DAY
引数
value
- Date、Date32、DateTimeまたはDateTime64
返される値
- 指定された日付/時間のその月の日数(1 - 31)。UInt8。
例
結果:
toDayOfWeek
日付または時間を伴う日付のその週の日数を返します。
toDayOfWeek()
の二引数形式は、週の初めの日を月曜日または日曜日に指定でき、戻り値が0から6または1から7の範囲になるかを指定できます。モード引数を省略すると、デフォルトモードは0です。日付のタイムゾーンを第三引数として指定できます。
モード | 週の初めの日 | 範囲 |
---|---|---|
0 | 月曜日 | 1-7: 月曜日 = 1, 火曜日 = 2, ..., 日曜日 = 7 |
1 | 月曜日 | 0-6: 月曜日 = 0, 火曜日 = 1, ..., 日曜日 = 6 |
2 | 日曜日 | 0-6: 日曜日 = 0, 月曜日 = 1, ..., 土曜日 = 6 |
3 | 日曜日 | 1-7: 日曜日 = 1, 月曜日 = 2, ..., 土曜日 = 7 |
構文
エイリアス: DAYOFWEEK
.
引数
t
- Date、Date32、DateTimeまたはDateTime64mode
- 週の初めの日を決定します。可能な値は0, 1, 2または3です。上の表で違いを確認してください。timezone
- オプションのパラメータで、他の変換関数と同様に動作します。
最初の引数は、parseDateTime64BestEffort()によりサポートされる形式のStringとしても指定できます。文字列引数のサポートは、特定のサードパーティツールが期待するMySQLとの互換性のためにのみ存在しています。文字列引数のサポートは、将来のMySQL互換性設定に依存する可能性があるため、一般的に文字列解析は遅いため、使用しないことが推奨されます。
返される値
- 指定された日付/時間における週の日数(1-7)、選択したモードに応じて
例
次の日付は2023年4月21日で、金曜日です。
結果:
toHour
時間を伴う日付の時間コンポーネント(0-24)を返します。
時計が前に進められた場合、通常は1時間進められ、午前2時に発生し、逆に戻される場合は1時間戻され、午前3時になると想定されます(これは常に正確に発生するわけではなく、タイムゾーンに依存します)。
構文
エイリアス: HOUR
引数
value
- DateTimeまたはDateTime64
返される値
- 指定された日付/時間のその日の時間(0 - 23)。UInt8。
例
結果:
toMinute
時間を伴う日付の分コンポーネント(0-59)を返します。
構文
エイリアス: MINUTE
引数
value
- DateTimeまたはDateTime64
返される値
- 指定された日付/時間のその時間の分(0 - 59)。UInt8。
例
結果:
toSecond
時間を伴う日付の秒コンポーネント(0-59)を返します。うるう秒は考慮されません。
構文
エイリアス: SECOND
引数
value
- DateTimeまたはDateTime64
返される値
- 指定された日付/時間のその分の秒(0 - 59)。UInt8。
例
結果:
toMillisecond
時間を伴う日付のミリ秒コンポーネント(0-999)を返します。
構文
引数
value
- DateTimeまたはDateTime64
エイリアス: MILLISECOND
結果:
返される値
- 指定された日付/時間のその分のミリ秒(0 - 59)。UInt16。
toUnixTimestamp
文字列、日付、または時間を伴う日付をUnixタイムスタンプにUInt32
表現で変換します。
関数が文字列で呼び出されると、オプションのタイムゾーン引数を受け付けます。
構文
返される値
- Unixタイムスタンプを返します。UInt32。
例
結果:
toStartOf*
、toLastDayOf*
、toMonday
、timeSlot
関数の返り値の型は、設定パラメータ enable_extended_results_for_datetime_functions によって決まります。このパラメータはデフォルトで0
です。
動作
enable_extended_results_for_datetime_functions = 0
:- 関数
toStartOfYear
、toStartOfISOYear
、toStartOfQuarter
、toStartOfMonth
、toStartOfWeek
、toLastDayOfWeek
、toLastDayOfMonth
、toMonday
は、引数がDate
またはDateTime
の場合、Date
またはDateTime
を返します。 - 関数
toStartOfDay
、toStartOfHour
、toStartOfFifteenMinutes
、toStartOfTenMinutes
、toStartOfFiveMinutes
、toStartOfMinute
、timeSlot
は、引数がDate
またはDateTime
の場合、DateTime
を返し、Date32
やDateTime64
を引数に指定しても正常な範囲(Date
の場合1970年から2149年、DateTime
の場合2106年)を超える時間を指定すると不正確な結果が得られます。
- 関数
enable_extended_results_for_datetime_functions = 1
:- 関数
toStartOfYear
、toStartOfISOYear
、toStartOfQuarter
、toStartOfMonth
、toStartOfWeek
、toLastDayOfWeek
、toLastDayOfMonth
、toMonday
は引数がDate
またはDateTime
の場合はDate
またはDateTime
を返し、引数がDate32
またはDateTime64
の場合はDate32
またはDateTime64
を返します。 - 関数
toStartOfDay
、toStartOfHour
、toStartOfFifteenMinutes
、toStartOfTenMinutes
、toStartOfFiveMinutes
、toStartOfMinute
、timeSlot
は引数がDate
またはDateTime
の場合はDateTime
を返し、引数がDate32
またはDateTime64
の場合はDateTime64
を返します。
- 関数
toStartOfYear
日付または時間を伴う日付を年の初めの初日まで切り下げます。日付はDate
オブジェクトとして返されます。
構文
引数
value
- Date、Date32、DateTimeまたはDateTime64
返される値
- 入力された日付/時間の年の初日。Date。
例
結果:
toStartOfISOYear
日付または時間を伴う日付をISO年の初日まで切り下げます。これは「通常の」年と異なる場合があります。(詳細はISO週日付を参照)。
構文
引数
value
- Date、Date32、DateTimeまたはDateTime64
返される値
- 入力された日付/時間の年の初日。Date。
例
結果:
toStartOfQuarter
日付または時間を伴う日付を四半期の初日まで切り下げます。四半期の初日は、1月1日、4月1日、7月1日、または10月1日です。 日付を返します。
構文
引数
value
- Date、Date32、DateTimeまたはDateTime64
返される値
- 指定された日付/時間の四半期の初日。Date。
例
結果:
toStartOfMonth
日付または時間を伴う日付を月の初日まで切り下げます。日付を返します。
構文
引数
value
- Date、Date32、DateTimeまたはDateTime64
返される値
- 指定された日付/時間の月の初日。Date。
例
結果:
不正な日付を解析する動作は実装に依存します。ClickHouseはゼロ日付を返すか、例外をスローするか、「自然」のオーバーフローを実行する可能性があります。
toLastDayOfMonth
日付または時間を伴う日付をその月の最終日まで切り上げます。日付を返します。
構文
エイリアス: LAST_DAY
引数
value
- Date、Date32、DateTimeまたはDateTime64
返される値
- 指定された日付/時間の月の最終日。Date。
例
結果:
toMonday
日付または時間を伴う日付を最近の月曜日まで切り下げます。日付を返します。
構文
引数
value
- Date、Date32、DateTimeまたはDateTime64
返される値
- 指定された日付の直近の月曜日の日時。Date。
例
結果:
toStartOfWeek
指定した日付または日時を最も近い日曜日または月曜日に丸めます。日付を返します。mode 引数は toWeek()
関数の mode 引数とまったく同じように機能します。モードが指定されていない場合、デフォルトで 0 になります。
構文
引数
t
- Date、Date32、DateTime または DateTime64mode
- toWeek() 関数で説明されているように、週の最初の日を決定します。timezone
- オプションのパラメータで、他の変換関数と同様に動作します。
返される値
- 指定した日付以前の最も近い日曜日または月曜日の日付。 Date。
例
結果:
toLastDayOfWeek
指定した日付または日時を最も近い土曜日または日曜日に丸めます。日付を返します。
mode 引数は toWeek()
関数の mode 引数とまったく同じように機能します。モードが指定されていない場合、モードは 0 と見なされます。
構文
引数
t
- Date、Date32、DateTime または DateTime64mode
- toWeek 関数で説明されているように、週の最終日を決定します。timezone
- オプションのパラメータで、他の変換関数と同様に動作します。
返される値
- 指定した日付以降の最も近い日曜日または土曜日の日付。 Date。
例
結果:
toStartOfDay
日時をその日の開始時刻に丸めます。
構文
引数
value
- Date、Date32、DateTime または DateTime64
返される値
- 指定した日付/時刻のその日の開始時刻。 DateTime。
例
結果:
toStartOfHour
日時をその時刻の開始時刻に丸めます。
構文
引数
value
- DateTime または DateTime64
返される値
- 指定した日付/時刻のその時刻の開始時刻。 DateTime。
例
結果:
toStartOfMinute
日時をその分の開始時刻に丸めます。
構文
引数
value
- DateTime または DateTime64
返される値
- 指定した日付/時刻のその分の開始時刻。 DateTime。
例
結果:
toStartOfSecond
サブ秒を切り捨てます。
構文
引数
value
— 日時。 DateTime64。timezone
— 返される値の Timezone (オプション)。指定されていない場合、関数はvalue
パラメータのタイムゾーンを使用します。 String。
返される値
- サブ秒のない入力値。 DateTime64。
例
タイムゾーンなしのクエリ:
結果:
タイムゾーンありのクエリ:
結果:
参照
- Timezone サーバー構成パラメーター。
toStartOfMillisecond
日時をミリ秒の開始時刻に丸めます。
構文
引数
value
— 日時。 DateTime64。timezone
— 返される値の Timezone (オプション)。指定されていない場合、関数はvalue
パラメータのタイムゾーンを使用します。String。
返される値
- サブミリ秒のある入力値。 DateTime64。
例
タイムゾーンなしのクエリ:
結果:
タイムゾーンありのクエリ:
結果:
参照
- Timezone サーバー構成パラメーター。
toStartOfMicrosecond
日時をマイクロ秒の開始時刻に丸めます。
構文
引数
value
— 日時。 DateTime64。timezone
— 返される値の Timezone (オプション)。指定されていない場合、関数はvalue
パラメータのタイムゾーンを使用します。 String。
返される値
- サブマイクロ秒のある入力値。 DateTime64。
例
タイムゾーンなしのクエリ:
結果:
タイムゾーンありのクエリ:
結果:
参照
- Timezone サーバー構成パラメーター。
toStartOfNanosecond
日時をナノ秒の開始時刻に丸めます。
構文
引数
value
— 日時。 DateTime64。timezone
— 返される値の Timezone (オプション)。指定されていない場合、関数はvalue
パラメータのタイムゾーンを使用します。 String。
返される値
- ナノ秒のある入力値。 DateTime64。
例
タイムゾーンなしのクエリ:
結果:
タイムゾーンありのクエリ:
結果:
参照
- Timezone サーバー構成パラメーター。
toStartOfFiveMinutes
日時を5分間隔の開始時刻に丸めます。
構文
引数
value
- DateTime または DateTime64
返される値
- 指定した日付/時刻の5分間隔の開始時刻。 DateTime。
例
結果:
toStartOfTenMinutes
日時を10分間隔の開始時刻に丸めます。
構文
引数
value
- DateTime または DateTime64
返される値
- 指定した日付/時刻の10分間隔の開始時刻。 DateTime。
例
結果:
toStartOfFifteenMinutes
日時を15分間隔の開始時刻に丸めます。
構文
引数
value
- DateTime または DateTime64
返される値
- 指定した日付/時刻の15分間隔の開始時刻。 DateTime。
例
結果:
toStartOfInterval
この関数は、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 | 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 |
(*) 時間のインターバルは特別です:計算は常に現在の日の 00:00:00(真夜中)に対して行われます。その結果、1から23の間の時間の値のみが有用です。
もしユニット WEEK
が指定された場合、toStartOfInterval
は週が月曜日に始まると仮定します。この動作は、週がデフォルトで日曜日から始まる関数 toStartOfWeek
とは異なります。
構文
エイリアス: time_bucket
, date_bin
.
2番目のオーバーロードは、TimescaleDBの time_bucket()
関数、またはPostgreSQLの date_bin()
関数をエミュレートします。 例えば、
結果:
参照
toTime
日時を特定の固定日付に変換し、時間を保持します。
構文
引数
date
— 時間に変換する日付。 Date/DateTime/DateTime64。timezone
(オプション) — 返される値のタイムゾーン。 String。
返される値
- 日付が
1970-01-02
に設定された時刻を保持する DateTime。 DateTime。
もし、date
入力引数にサブ秒成分が含まれている場合、それらは返される DateTime
値において秒精度で切り捨てられます。
例
クエリ:
結果:
toRelativeYearNum
日付または日時を、過去の特定の基準点から経過した年数に変換します。
構文
引数
date
— 日付または日時。 Date/DateTime/DateTime64。
返される値
- 過去の基準点からの年数。 UInt16。
例
クエリ:
結果:
toRelativeQuarterNum
日付または日時を、過去の特定の基準点から経過した四半期数に変換します。
構文
引数
date
— 日付または日時。 Date/DateTime/DateTime64。
返される値
- 過去の基準点からの四半期数。 UInt32。
例
クエリ:
結果:
toRelativeMonthNum
日付または日時を、過去の特定の基準点から経過した月数に変換します。
構文
引数
date
— 日付または日時。 Date/DateTime/DateTime64。
返される値
- 過去の基準点からの月数。 UInt32。
例
クエリ:
結果:
toRelativeWeekNum
日付または日時を、過去の特定の基準点から経過した週数に変換します。
構文
引数
date
— 日付または日時。 Date/DateTime/DateTime64。
返される値
- 過去の基準点からの週数。 UInt32。
例
クエリ:
結果:
toRelativeDayNum
日付または日時を、過去の特定の基準点から経過した日数に変換します。
構文
引数
date
— 日付または日時。 Date/DateTime/DateTime64。
返される値
- 過去の基準点からの日数。 UInt32。
例
クエリ:
結果:
toRelativeHourNum
日付または日時を、過去の特定の基準点から経過した時間数に変換します。
構文
引数
date
— 日付または日時。 Date/DateTime/DateTime64。
返される値
- 過去の基準点からの時間数。 UInt32。
例
クエリ:
結果:
toRelativeMinuteNum
日付または日時を、過去の特定の基準点から経過した分数に変換します。
構文
引数
date
— 日付または日時。 Date/DateTime/DateTime64。
返される値
- 過去の基準点からの分数。 UInt32。
例
クエリ:
結果:
toRelativeSecondNum
日付または日時を、過去の特定の基準点から経過した秒数に変換します。
構文
引数
date
— 日付または日時。 Date/DateTime/DateTime64。
返される値
- 過去の基準点からの秒数。 UInt32。
例
クエリ:
結果:
toISOYear
日付または日時を、ISO年を UInt16 型で返します。
構文
引数
value
— 日付または日時の値。 Date、Date32、DateTime または DateTime64
返される値
- 入力値をISO年数に変換。 UInt16。
例
クエリ:
結果:
toISOWeek
日付または日時を、ISO週数で UInt8 型の数値に変換します。
構文
引数
value
— 日付または日時の値。
返される値
- 現在のISO週数に変換された
value
。 UInt8。
例
クエリ:
結果:
toWeek
この関数は、日付または日時の週番号を返します。2引数形式の toWeek()
を使うと、週の開始日が日曜日か月曜日か、返される値が0から53の範囲か1から53の範囲かを指定できます。mode 引数を省略すると、デフォルトのモードは 0 です。
toISOWeek()
は toWeek(date,3)
と同等の互換性関数です。
mode 引数がどのように機能するかを示す以下の表があります。
モード | 週の最初の日 | 範囲 | 週 1は ... の最初の週 |
---|---|---|---|
0 | 日曜日 | 0-53 | この年に日曜日がある週 |
1 | 月曜日 | 0-53 | この年に4日以上ある週 |
2 | 日曜日 | 1-53 | この年に日曜日がある週 |
3 | 月曜日 | 1-53 | この年に4日以上ある週 |
4 | 日曜日 | 0-53 | この年に4日以上ある週 |
5 | 月曜日 | 0-53 | この年に月曜日がある週 |
6 | 日曜日 | 1-53 | この年に4日以上ある週 |
7 | 月曜日 | 1-53 | この年に月曜日がある週 |
8 | 日曜日 | 1-53 | 1月1日を含む |
9 | 月曜日 | 1-53 | 1月1日を含む |
「この年に4日以上ある週」という意味のモード値の場合、週はISO 8601:1988に従って番号が付けられます:
-
1月1日を含む週が4日以上新年にある場合、それは週1です。
-
そうでない場合、それは前の年の最後の週であり、次の週は週1です。
「1月1日を含む」という意味のモード値の場合、1月1日を含む週が週1です。 新年に含まれる日数は関係ありません。たとえ新年に1日しか含まれなくてもかまいません。 すなわち、12月の最後の週が翌年の1月1日を含む場合、それは翌年の週1となります。
構文
エイリアス: WEEK
引数
t
– 日付または日時。mode
– オプションのパラメータ、範囲の値は [0,9]、デフォルトは 0。Timezone
– オプションのパラメータで、他の変換関数と同様に動作します。
最初の引数は String としても指定できます。これは parseDateTime64BestEffort() がサポートする形式です。文字列引数のサポートは、特定の3rdパーティツールが期待するMySQLとの互換性のためだけに存在します。文字列引数のサポートは、将来的に新しいMySQL互換設定に依存する可能性があり、文字列解析は一般的に遅いため、使用しないことをお勧めします。
例
toYearWeek
日付に対して年と週を返します。結果の年は、年の最初と最後の週の場合、日付の年と異なる場合があります。
mode 引数は toWeek()
に対する mode 引数のように機能します。単一引数構文の場合、モード値は 0 が使用されます。
toISOYear()
は intDiv(toYearWeek(date,3),100)
と同等の互換性関数です。
toYearWeek()
が返す週番号は、toWeek()
が返すものとは異なる場合があります。 toWeek()
は常に、指定された年の文脈における週番号を返し、toWeek()
が 0
を返す場合、toYearWeek()
は前の年の最後の週に対応する値を返します。以下の例の prev_yearWeek
を参照してください。
構文
エイリアス: YEARWEEK
最初の引数は String としても指定できます。これは parseDateTime64BestEffort() がサポートする形式です。文字列引数のサポートは、特定の3rdパーティツールが期待するMySQLとの互換性のためだけに存在します。文字列引数のサポートは、将来的に新しいMySQL互換設定に依存する可能性があり、文字列解析は一般的に遅いため、使用しないことをお勧めします。
例
toDaysSinceYearZero
指定した日付の、西暦 0000 年 1 月 1 日 からの日数を返します。ISO 8601 で定義された 延長グレゴリオ暦と同じ計算です。この計算は、MySQL の TO_DAYS()
関数と同様です。
構文
エイリアス: TO_DAYS
引数
date
— 年ゼロから経過した日数を計算する日付。Date、Date32、DateTime または DateTime64。time_zone
— タイムゾーンを表す文字列型定数値または式。String types
返される値
日付 0000-01-01 から経過した日数。UInt32。
例
結果:
参照
fromDaysSinceYearZero
1 January 0000 から経過した日数に対する、ISO 8601 によって定義された先行 Gregorian calendar の対応する日付を返します。計算は MySQL の FROM_DAYS()
関数と同じです。
結果は、Date 型の範囲内で表現できない場合は未定義です。
構文
エイリアス: FROM_DAYS
引数
days
— 年ゼロから経過した日数。
返される値
年ゼロから経過した日数に対応する日付。 Date。
例
結果:
も参照
fromDaysSinceYearZero32
fromDaysSinceYearZero と同様ですが、Date32 を返します。
age
startdate
と enddate
の間の差の unit
コンポーネントを返します。差は1ナノ秒の精度で計算されます。
例えば、2021-12-29
と 2022-01-01
の違いは、day
単位で3日、month
単位で0ヶ月、year
単位で0年です。
age
の代替として date_diff
関数を参照してください。
構文
引数
-
unit
— 結果の間隔のタイプ。 String。 可能な値:nanosecond
,nanoseconds
,ns
microsecond
,microseconds
,us
,u
millisecond
,milliseconds
,ms
second
,seconds
,ss
,s
minute
,minutes
,mi
,n
hour
,hours
,hh
,h
day
,days
,dd
,d
week
,weeks
,wk
,ww
month
,months
,mm
,m
quarter
,quarters
,qq
,q
year
,years
,yyyy
,yy
-
startdate
— 引き算の最初の時間値(被減数)。 Date、Date32、DateTime または DateTime64。 -
enddate
— 引き算の第二の時間値(減数)。 Date、Date32、DateTime または DateTime64。 -
timezone
— タイムゾーン名 (オプション)。指定された場合、startdate
とenddate
の両方に適用されます。指定されない場合は、startdate
とenddate
のタイムゾーンが使用されます。異なる場合、結果は未定義です。 String。
返される値
enddate
と startdate
の違いを unit
で表した値。 Int。
例
結果:
結果:
date_diff
startdate
と enddate
の間に交差する指定された unit
境界の数を返します。
差は相対単位を使用して計算されます。例えば、2021-12-29
と 2022-01-01
の違いは、単位 day
では3日(toRelativeDayNumを参照)、単位 month
では1ヶ月(toRelativeMonthNumを参照)、単位 year
では1年(toRelativeYearNumを参照)です。
単位 week
が指定された場合、date_diff
は週が月曜日から始まると仮定します。この動作は、週がデフォルトで日曜日から始まる toWeek()
関数とは異なります。
date_diff
の代替として、age
関数を参照してください。
構文
エイリアス: dateDiff
, DATE_DIFF
, timestampDiff
, timestamp_diff
, TIMESTAMP_DIFF
.
引数
-
unit
— 結果の間隔のタイプ。 String。 可能な値:nanosecond
,nanoseconds
,ns
microsecond
,microseconds
,us
,u
millisecond
,milliseconds
,ms
second
,seconds
,ss
,s
minute
,minutes
,mi
,n
hour
,hours
,hh
,h
day
,days
,dd
,d
week
,weeks
,wk
,ww
month
,months
,mm
,m
quarter
,quarters
,qq
,q
year
,years
,yyyy
,yy
-
startdate
— 引き算の最初の時間値(被減数)。 Date、Date32、DateTime または DateTime64。 -
enddate
— 引き算の第二の時間値(減数)。 Date、Date32、DateTime または DateTime64。 -
timezone
— タイムゾーン名 (オプション)。指定された場合、startdate
とenddate
の両方に適用されます。指定されない場合は、startdate
とenddate
のタイムゾーンが使用されます。異なる場合、結果は未定義です。 String。
返される値
enddate
と startdate
の違いを unit
で表した値。 Int。
例
結果:
結果:
date_trunc
日付と時間データを指定された日付の部分に切り捨てます。
構文
エイリアス: dateTrunc
.
引数
-
unit
— 結果を切り捨てる間隔のタイプ。 String Literal。 可能な値:nanosecond
- DateTime64 のみと互換性がありますmicrosecond
- DateTime64 のみと互換性がありますmilisecond
- DateTime64 のみと互換性がありますsecond
minute
hour
day
week
month
quarter
year
unit
引数は大文字小文字を区別しません。 -
value
— 日付と時間。 Date、Date32、DateTime または DateTime64。 -
timezone
— 返される値のタイムゾーン名(オプション)。指定されない場合、関数はvalue
パラメーターのタイムゾーンを使用します。 String。
返される値
- 指定された日付の部分に切り捨てられた値。 DateTime。
例
タイムゾーンなしのクエリ:
結果:
指定されたタイムゾーンでのクエリ:
結果:
も参照
date_add
提供された日付または日付と時間に、時間間隔または日付間隔を追加します。
追加の結果がデータ型の範囲を超える場合、結果は未定義です。
構文
代替構文:
エイリアス: dateAdd
, DATE_ADD
.
引数
-
unit
— 追加する間隔のタイプ。これは String ではなく、引用符で囲まない必要があります。 可能な値:second
minute
hour
day
week
month
quarter
year
-
value
— 追加する間隔の値。 Int。 -
date
—value
が追加される日付または日付と時間。 Date、Date32、DateTime または DateTime64。
返される値
value
を unit
で表した日付または日付と時間を date
に追加した結果。 Date、Date32、DateTime または DateTime64。
例
結果:
結果:
も参照
date_sub
提供された日付または日付と時間から、時間間隔または日付間隔を引き算します。
引き算の結果がデータ型の範囲を超える場合、結果は未定義です。
構文
代替構文:
エイリアス: dateSub
, DATE_SUB
.
引数
-
unit
— 引き算する間隔のタイプ。これは String ではなく、引用符で囲まない必要があります。可能な値:
second
minute
hour
day
week
month
quarter
year
-
value
— 引き算する間隔の値。 Int。 -
date
—value
が引き算される日付または日付と時間。 Date、Date32、DateTime または DateTime64。
返される値
value
を unit
で表した日付または日付と時間から date
を引き算した結果。 Date、Date32、DateTime または DateTime64。
例
結果:
結果:
も参照
timestamp_add
指定された時間値を提供された日付または日付 時間値に追加します。
追加の結果がデータ型の範囲を超える場合、結果は未定義です。
構文
エイリアス: timeStampAdd
, TIMESTAMP_ADD
.
引数
-
date
— 日付または日付と時間。 Date、Date32、DateTime または DateTime64。 -
value
— 追加する間隔の値。 Int。 -
unit
— 追加する間隔のタイプ。 String。 可能な値:second
minute
hour
day
week
month
quarter
year
返される値
指定された value
を unit
で表した内容を date
に追加した日付または日付と時間。 Date、Date32、DateTime または DateTime64。
例
結果:
timestamp_sub
指定された間隔を提供された日付または日付と時間から引き算します。
引き算の結果がデータ型の範囲を超える場合、結果は未定義です。
構文
エイリアス: timeStampSub
, TIMESTAMP_SUB
.
引数
-
unit
— 引き算する間隔のタイプ。 String。 可能な値:second
minute
hour
day
week
month
quarter
year
-
value
— 引き算する間隔の値。 Int。 -
date
— 日付または日付と時間。 Date、Date32、DateTime または DateTime64。
返される値
value
を unit
で表した内容を date
から引き算した日付または日付と時間。 Date、Date32、DateTime または DateTime64。
例
結果:
addDate
提供された日付、日付と時間または文字列で表現された日付に時間間隔を追加します。
追加の結果がデータ型の範囲を超える場合、結果は未定義です。
構文
引数
-
date
—interval
が追加される日付または日付と時間。 Date、Date32、DateTime、DateTime64、または String -
interval
— 追加する間隔。 Interval。
返される値
date
に interval
を追加した結果の日付または日付と時間。 Date、Date32、DateTime または DateTime64。
例
結果:
エイリアス: ADDDATE
も参照
subDate
提供された日付、日付と時間または文字列で表現された日付から時間間隔を引き算します。
引き算の結果がデータ型の範囲を超える場合、結果は未定義です。
構文
引数
-
date
—interval
が引き算される日付または日付と時間。 Date、Date32、DateTime、DateTime64、または String -
interval
— 引き算する間隔。 Interval。
返される値
date
から interval
を引き算した結果の日付または日付と時間。 Date、Date32、DateTime または DateTime64。
例
結果:
エイリアス: SUBDATE
も参照
now
クエリ分析の瞬間における現在の日付と時間を返します。この関数は定数式です。
エイリアス: current_timestamp
.
構文
引数
timezone
— 返される値のタイムゾーン名(オプション)。 String。
返される値
- 現在の日付と時間。 DateTime。
例
タイムゾーンなしのクエリ:
結果:
指定されたタイムゾーンでのクエリ:
結果:
now64
クエリ分析の瞬間におけるサブ秒精度の現在の日付と時間を返します。この関数は定数式です。
構文
引数
-
scale
- ティックサイズ(精度):10-precision秒。有効範囲: [ 0 : 9 ]。通常使用されるのは - 3(デフォルト)(ミリ秒)、6(マイクロ秒)、9(ナノ秒)です。 -
timezone
— 返される値のタイムゾーン名(オプション)。 String。
返される値
- サブ秒精度の現在の日付と時間。 DateTime64。
例
結果:
nowInBlock
各データブロックの処理の瞬間における現在の日付と時間を返します。now 関数とは異なり、これは定数式ではなく、長時間のクエリでは異なるブロックで返される値が異なります。
この関数は、長時間の INSERT SELECT クエリで現在の時刻を生成するために使うのが最適です。
構文
引数
timezone
— 返される値のタイムゾーン名(オプション)。 String。
返される値
- 各データブロックの処理の瞬間における現在の日付と時間。 DateTime。
例
結果:
today
クエリ分析の瞬間における現在の日付を返します。これは 'toDate(now())' と同じで、エイリアス: curdate
, current_date
があります。
構文
引数
- なし
返される値
- 現在の日付。 DateTime。
例
クエリ:
結果:
2024年3月3日に上記のクエリを実行すると、以下の結果が返されます:
yesterday
引数はゼロで、クエリ分析の瞬間に昨日の日付を返します。 'today() - 1' と同じです。
timeSlot
時間を30分の長さの間隔に切り上げます。
構文
引数
time
— 30分の長さの間隔の開始に切り上げる時間。 DateTime/Date32/DateTime64。time_zone
— タイムゾーンを表す文字列型定数値または式。 String。
この関数は、Date32
と DateTime64
の拡張型の値を引数として受け取ることができますが、通常の範囲(Date
用の1970年から2149年 / DateTime
用の2106年)を超える時間を渡すと間違った結果を生成します。
戻り値の型
- 30分の長さの間隔の開始に切り上げられた時間を返します。 DateTime。
例
クエリ:
結果:
toYYYYMM
日付または日付と時間を年と月の番号を含む UInt32 数(YYYY * 100 + MM)に変換します。第二のオプショナルタイムゾーン引数を受け取ります。提供された場合、タイムゾーンは文字列定数でなければなりません。
この関数は YYYYMMDDToDate()
関数の逆です。
例
結果:
toYYYYMMDD
日付または日付と時間を年、月、日の番号を含む UInt32 数(YYYY * 10000 + MM * 100 + DD)に変換します。第二のオプショナルタイムゾーン引数を受け取ります。提供された場合、タイムゾーンは文字列定数でなければなりません。
例
結果:
toYYYYMMDDhhmmss
日付または日付と時間を年、月、日、時、分、秒の番号を含む UInt64 数(YYYY * 10000000000 + MM * 100000000 + DD * 1000000 + hh * 10000 + mm * 100 + ss)に変換します。第二のオプショナルタイムゾーン引数を受け取ります。提供された場合、タイムゾーンは文字列定数でなければなりません。
例
結果:
YYYYMMDDToDate
年、月、日を含む数を Date に変換します。
この関数は toYYYYMMDD()
関数の逆です。
入力が有効な Date 値をエンコードしていない場合、出力は未定義になります。
構文
引数
返される値
- 引数から作成された日付。 Date。
例
結果:
YYYYMMDDToDate32
YYYYMMDDToDate()
関数と同様ですが、Date32 を生成します。
YYYYMMDDhhmmssToDateTime
年、月、日、時、分、秒の番号を含む数を DateTime に変換します。
入力が有効な DateTime 値をエンコードしていない場合、出力は未定義になります。
この関数は toYYYYMMDDhhmmss()
関数の逆です。
構文
引数
返される値
- 引数から作成された日付と時間。 DateTime。
例
結果:
YYYYMMDDhhmmssToDateTime64
YYYYMMDDhhmmssToDate()
関数と同様ですが、DateTime64 を生成します。
追加のオプショナルな precision
パラメーターを、timezone
パラメーターの後に受け取ります。
changeYear
日付または日付 時間の年のコンポーネントを変更します。
構文
引数
date_or_datetime
- Date、Date32、DateTime または DateTime64value
- 年の新しい値。 Integer。
返される値
date_or_datetime
と同じ型。
例
結果:
changeMonth
日付または日付 時間の月のコンポーネントを変更します。
構文
引数
date_or_datetime
- Date、Date32、DateTime または DateTime64value
- 月の新しい値。 Integer。
返される値
date_or_datetime
と同じ型の値を返します。
例
結果:
changeDay
日付または日付 時間の日のコンポーネントを変更します。
構文
引数
date_or_datetime
- Date、Date32、DateTime または DateTime64value
- 日の新しい値。 Integer。
返される値
date_or_datetime
と同じ型の値を返します。
例
結果:
changeHour
日付または日付時刻の時間コンポーネントを変更します。
構文
引数
date_or_datetime
- Date、Date32、DateTime、または DateTime64value
- 時間の新しい値。Integer。
戻り値
date_or_datetime
と同じ型の値を返します。入力が Date の場合は DateTime を返します。入力が Date32 の場合は DateTime64 を返します。
例
結果:
changeMinute
日付または日付時刻の分コンポーネントを変更します。
構文
引数
date_or_datetime
- Date、Date32、DateTime、または DateTime64value
- 分の新しい値。Integer。
戻り値
date_or_datetime
と同じ型の値を返します。入力が Date の場合は DateTime を返します。入力が Date32 の場合は DateTime64 を返します。
例
結果:
changeSecond
日付または日付時刻の秒コンポーネントを変更します。
構文
引数
date_or_datetime
- Date、Date32、DateTime、または DateTime64value
- 秒の新しい値。Integer。
戻り値
date_or_datetime
と同じ型の値を返します。入力が Date の場合は DateTime を返します。入力が Date32 の場合は DateTime64 を返します。
例
結果:
addYears
指定された年数を日付、日付時刻、または文字列エンコードされた日付/日付時刻に追加します。
構文
引数
戻り値
date
にnum
年を追加します。Date/Date32/DateTime/DateTime64。
例
addQuarters
指定された四半期数を日付、日付時刻、または文字列エンコードされた日付/日付時刻に追加します。
構文
引数
戻り値
date
にnum
四半期を追加します。Date/Date32/DateTime/DateTime64。
例
addMonths
指定された月数を日付、日付時刻、または文字列エンコードされた日付/日付時刻に追加します。
構文
引数
戻り値
date
にnum
ヶ月を追加します。Date/Date32/DateTime/DateTime64。
例
addWeeks
指定された週数を日付、日付時刻、または文字列エンコードされた日付/日付時刻に追加します。
構文
引数
戻り値
date
にnum
週を追加します。Date/Date32/DateTime/DateTime64。
例
addDays
指定された日数を日付、日付時刻、または文字列エンコードされた日付/日付時刻に追加します。
構文
引数
戻り値
date
にnum
日を追加します。Date/Date32/DateTime/DateTime64。
例
addHours
指定された時間数を日付、日付時刻、または文字列エンコードされた日付/日付時刻に追加します。
構文
引数
戻り値
date
にnum
時間を追加します。Date/Date32/DateTime/DateTime64。
例
addMinutes
指定された分数を日付、日付時刻、または文字列エンコードされた日付/日付時刻に追加します。
構文
引数
戻り値
date
にnum
分を追加します。Date/Date32/DateTime/DateTime64。
例
addSeconds
指定された秒数を日付、日付時刻、または文字列エンコードされた日付/日付時刻に追加します。
構文
引数
戻り値
date
にnum
秒を追加します。Date/Date32/DateTime/DateTime64。
例
addMilliseconds
指定されたミリ秒数を日付時刻、または文字列エンコードされた日付時刻に追加します。
構文
引数
date_time
: 指定されたミリ秒数を追加する日付時刻。DateTime/DateTime64、String。num
: 追加するミリ秒数。(U)Int*、Float*。
戻り値
date_time
にnum
ミリ秒を追加します。DateTime64。
例
addMicroseconds
指定されたマイクロ秒数を日付時刻、または文字列エンコードされた日付時刻に追加します。
構文
引数
date_time
: 指定されたマイクロ秒数を追加する日付時刻。DateTime/DateTime64、String。num
: 追加するマイクロ秒数。(U)Int*、Float*。
戻り値
date_time
にnum
マイクロ秒を追加します。DateTime64。
例
addNanoseconds
指定されたナノ秒数を日付時刻、または文字列エンコードされた日付時刻に追加します。
構文
引数
date_time
: 指定されたナノ秒数を追加する日付時刻。DateTime/DateTime64、String。num
: 追加するナノ秒数。(U)Int*、Float*。
戻り値
date_time
にnum
ナノ秒を追加します。DateTime64。
例
addInterval
他の間隔または間隔のタプルに間隔を追加します。
構文
引数
戻り値
同じタイプの間隔は1つの間隔に結合されます。たとえば、toIntervalDay(1)
と toIntervalDay(2)
を渡すと、結果は (3)
になります。 (1,1)
ではありません。
例
クエリ:
結果:
addTupleOfIntervals
日付または日付時刻に間隔のタプルを逐次追加します。
構文
引数
戻り値
intervals
が追加されたdate
を返します。date/date32/datetime/datetime64。
例
クエリ:
結果:
subtractYears
日付、日付時刻、または文字列エンコードされた日付/日付時刻から指定された年数を減算します。
構文
引数
戻り値
date
からnum
年を引きます。Date/Date32/DateTime/DateTime64。
例
subtractQuarters
日付、日付時刻、または文字列エンコードされた日付/日付時刻から指定された四半期数を減算します。
構文
引数
戻り値
date
からnum
四半期を引きます。Date/Date32/DateTime/DateTime64。
例
subtractMonths
日付、日付時刻、または文字列エンコードされた日付/日付時刻から指定された月数を減算します。
構文
引数
戻り値
date
からnum
ヶ月を引きます。Date/Date32/DateTime/DateTime64。
例
subtractWeeks
日付、日付時刻、または文字列エンコードされた日付/日付時刻から指定された週数を減算します。
構文
引数
戻り値
date
からnum
週を引きます。Date/Date32/DateTime/DateTime64。
例
subtractDays
日付、日付時刻、または文字列エンコードされた日付/日付時刻から指定された日数を減算します。
構文
引数
戻り値
date
からnum
日を引きます。Date/Date32/DateTime/DateTime64。
例
subtractHours
日付、日付時刻、または文字列エンコードされた日付/日付時刻から指定された時間数を減算します。
構文
引数
戻り値
date
からnum
時間を引きます。Date/Date32/Datetime/DateTime64。
例
subtractMinutes
指定された分数を日付、時間付きの日付、または文字列形式の日付/時間から減算します。
構文
パラメータ
返される値
date
からnum
分を引いた結果を返します。 Date/Date32/DateTime/DateTime64。
例
subtractSeconds
指定された秒数を日付、時間付きの日付、または文字列形式の日付/時間から減算します。
構文
パラメータ
返される値
date
からnum
秒を引いた結果を返します。 Date/Date32/DateTime/DateTime64。
例
subtractMilliseconds
指定されたミリ秒数を時間付きの日付、または文字列形式の時間付きの日付から減算します。
構文
パラメータ
date_time
: 指定されたミリ秒数を減算する時間付きの日付。 DateTime/DateTime64、String。num
: 減算するミリ秒数。 (U)Int*、Float*。
返される値
date_time
からnum
ミリ秒を引いた結果を返します。 DateTime64。
例
subtractMicroseconds
指定されたマイクロ秒数を時間付きの日付、または文字列形式の時間付きの日付から減算します。
構文
パラメータ
date_time
: 指定されたマイクロ秒数を減算する時間付きの日付。 DateTime/DateTime64、String。num
: 減算するマイクロ秒数。 (U)Int*、Float*。
返される値
date_time
からnum
マイクロ秒を引いた結果を返します。 DateTime64。
例
subtractNanoseconds
指定されたナノ秒数を時間付きの日付、または文字列形式の時間付きの日付から減算します。
構文
パラメータ
date_time
: 指定されたナノ秒数を減算する時間付きの日付。 DateTime/DateTime64、String。num
: 減算するナノ秒数。 (U)Int*、Float*。
返される値
date_time
からnum
ナノ秒を引いた結果を返します。 DateTime64。
例
subtractInterval
他のインターバルまたはインターバルのタプルに否定されたインターバルを加算します。
構文
パラメータ
返される値
同じタイプのインターバルは1つのインターバルに結合されます。例えば、toIntervalDay(2)
と toIntervalDay(1)
が渡された場合、結果は (1)
になります。
例
クエリ:
結果:
subtractTupleOfIntervals
タプルのインターバルを日付または日時から逐次減算します。
構文
パラメータ
date
: 最初のインターバルまたはタプルのインターバル。 Date/Date32/DateTime/DateTime64。intervals
:date
から減算するインターバルのタプル。 tuple(interval)。
返される値
- 減算された
intervals
を持つdate
を返します。 Date/Date32/DateTime/DateTime64。
例
クエリ:
結果:
timeSlots
'StartTime' から開始し、'Duration' 秒間続く時間間隔に対して、この間隔を 'Size' 秒に切り捨てた時間の点の配列を返します。 'Size' は省略可能なパラメータで、デフォルトは1800(30分)です。
これは、例えば、対応するセッション内のページビューを検索する際に必要です。
'StartTime' 引数として DateTime と DateTime64 を受け取ります。 DateTime の場合、'Duration' と 'Size' 引数は UInt32
でなければなりません。 'DateTime64' の場合、それらは Decimal64
でなければなりません。
DateTime/DateTime64 の配列を返します(返り値の型は 'StartTime' の型と一致します)。 DateTime64 の場合、返り値のスケールは 'StartTime' のスケールと異なる場合があります --- 与えられたすべての引数の中で最高のスケールが採用されます。
構文
例
結果:
formatDateTime
指定されたフォーマット文字列に従って時間をフォーマットします。フォーマットは定数式であるため、単一の結果列に対して複数のフォーマットを持つことはできません。
formatDateTime は MySQL の日時フォーマットスタイルを使用します。詳細は https://dev.mysql.com/doc/refman/8.0/en/date-and-time-functions.html#function_date-format を参照してください。
この関数の逆操作は parseDateTime です。
エイリアス: DATE_FORMAT
.
構文
返される値
決定されたフォーマットに従った時間と日付の値を返します。
置換フィールド
置換フィールドを使用して、結果の文字列のパターンを定義できます。「例」カラムは 2018-01-02 22:33:44
のフォーマット結果を示しています。
プレースホルダー | 説明 | 例 |
---|---|---|
%a | 省略された曜日名 (月曜日-日曜日) | Mon |
%b | 省略された月名 (1月-12月) | Jan |
%c | 整数で表された月 (01-12)、下記の「注 4」を参照 | 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 | 小数秒、下記の「注 1」及び「注 2」を参照 | 123456 |
%F | 短縮されたYYYY-MM-DD形式の日付で、%Y-%m-%d と等しい | 2018-01-02 |
%g | ISO 8601に準拠した2桁の年形式で、4桁の表記から省略されたもの | 18 |
%G | ISO週番号用の4桁の年形式、ISO 8601で定義された週ベースの年から計算される、通常は%Vと共に使用される | 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)、下記の「注 4」を参照 | 14 |
%l | 12時間形式の時 (01-12)、下記の「注 4」を参照 | 09 |
%m | 整数で表された月 (01-12) | 01 |
%M | 月の完全な名前 (1月-12月)、下記の「注 3」を参照 | 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 |
%y | 年の下2桁 (00-99) | 18 |
%Y | 年 | 2018 |
%z | UTCからの時間オフセットを +HHMM または -HHMM で表現 | -0500 |
%% | %記号 | % |
注 1: ClickHouseバージョン23.4未満では、%f は日付、Date32、DateTime(小数秒がない場合)または精度が0のDateTime64の場合は単一のゼロ (0) を出力します。以前の挙動は設定 formatdatetime_f_prints_single_zero = 1
を使用して復元できます。
注 2: ClickHouseバージョン25.1未満では、%f はDateTime64のスケールが指定した桁数に応じて出力されます。以前の挙動は設定 formatdatetime_f_prints_scale_number_of_digits= 1
を用いて復元できます。
注 3: ClickHouseバージョン23.4未満では、%M は完全な月名 (1月-12月) ではなく分 (00-59) を出力します。以前の挙動は設定 formatdatetime_parsedatetime_m_is_month_name = 0
を使用して復元できます。
注 4: ClickHouseバージョン23.11未満では、関数 parseDateTime()
はフォーマッタ %c(間隔)と %l/%k(時)に対し、先頭にゼロを必要としました(例: 07
)。以降のバージョンでは先頭のゼロを省略できます(例: 7
)。以前の挙動は設定 parsedatetime_parse_without_leading_zeros = 0
を使って復元できます。関数 formatDateTime()
は、デフォルトで%0と%l/%kに対し、既存の使用ケースを崩さないように先頭ゼロを出力します。この挙動は設定 formatdatetime_format_without_leading_zeros = 1
で変更できます。
例
結果:
結果:
さらに、formatDateTime
関数には、タイムゾーンの名前を含む第三の文字列引数を与えることができます。例: Asia/Istanbul
。この場合、時間は指定されたタイムゾーンに従ってフォーマットされます。
例
参照
formatDateTimeInJodaSyntax
formatDateTimeと似ていますが、MySQLスタイルではなくJodaスタイルで日時をフォーマットします。 https://joda-time.sourceforge.net/apidocs/org/joda/time/format/DateTimeFormat.html を参照してください。
この関数の逆操作は 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 | 一日の時 (0~23) | 数字 | 0 |
k | 一日の時 (1~24) | 数字 | 24 |
m | 時の分 | 数字 | 30 |
s | 分の秒 | 数字 | 55 |
S | 秒の小数 | 数字 | 978 |
z | タイムゾーン | テキスト | Eastern Standard Time; EST |
Z | タイムゾーンオフセット | ゾーン | -0800; -0812 |
' | テキストのエスケープ | デリミタ | |
'' | シングルクォート | リテラル | ' |
例
結果:
dateName
指定された日付の部分を返します。
構文
引数
date_part
— 日付部分。可能な値: 'year', 'quarter', 'month', 'week', 'dayofyear', 'day', 'weekday', 'hour', 'minute', 'second'。 String。date
— 日付。 Date、Date32、DateTime または DateTime64。timezone
— タイムゾーン。省略可能。 String。
返される値
指定された日付部分。String
例
結果:
monthName
月の名前を返します。
構文
引数
date
— 日付または時間付きの日付。 Date、DateTime または DateTime64。
返される値
月の名前。String
例
結果:
fromUnixTimestamp
この関数はUnixタイムスタンプをカレンダーの日付と一日の時間に変換します。
次の2つの方法で呼び出すことができます:
単一の引数がInteger型の場合、DateTime型の値を返します。つまり、toDateTimeのように動作します。
エイリアス: FROM_UNIXTIME
。
例:
結果:
2つまたは3つの引数があり、最初の引数がInteger、Date、Date32、DateTimeまたはDateTime64型の場合、2番目の引数は定数のフォーマット文字列、3番目の引数はオプションの定数タイムゾーン文字列で、関数はString型の値を返します。つまり、formatDateTimeのように動作します。この場合、MySQLのdatetimeフォーマットスタイルが使用されます。
例:
結果:
関連情報
fromUnixTimestampInJodaSyntax
fromUnixTimestampと同様ですが、2つまたは3つの引数を使用して呼び出された場合、フォーマッティングはMySQLスタイルではなくJodaスタイルで行われます。
例:
結果:
toModifiedJulianDay
テキスト形式YYYY-MM-DD
の旧暦グレゴリオ暦の日付を[Int32]の修正ユリウス日番号に変換します。この関数は、0000-01-01
から9999-12-31
までの日付をサポートしています。引数が日付として解析できない場合や、日付が無効な場合は例外が発生します。
構文
引数
date
— テキスト形式の日付。StringまたはFixedString。
返される値
- 修正ユリウス日番号。Int32。
例
結果:
toModifiedJulianDayOrNull
toModifiedJulianDay()と似ていますが、例外を発生させる代わりにNULL
を返します。
構文
引数
date
— テキスト形式の日付。StringまたはFixedString。
返される値
- 修正ユリウス日番号。Nullable(Int32)。
例
結果:
fromModifiedJulianDay
修正ユリウス日番号をテキスト形式YYYY-MM-DD
の旧暦グレゴリオ暦の日付に変換します。この関数は、-678941
から2973483
までの日数をサポートします(これはそれぞれ0000-01-01
と9999-12-31
を表します)。日数がサポート範囲外の場合は例外が発生します。
構文
引数
day
— 修正ユリウス日番号。Any integral types。
返される値
- テキスト形式の日付。String。
例
結果:
fromModifiedJulianDayOrNull
fromModifiedJulianDay()と似ていますが、例外を発生させる代わりにNULL
を返します。
構文
引数
day
— 修正ユリウス日番号。Any integral types。
返される値
- テキスト形式の日付。Nullable(String)。
例
結果:
toUTCTimestamp
DateTime/DateTime64型の値を他のタイムゾーンからUTCタイムゾーンのタイムスタンプに変換します。この関数は、主にApache Sparkや類似のフレームワークとの互換性を考慮して含まれています。
構文
引数
time_val
— DateTime/DateTime64型の定数値または式。DateTime/DateTime64 typestime_zone
— タイムゾーンを表すString型の定数値または式。String types
返される値
- テキスト形式のDateTime/DateTime64
例
結果:
fromUTCTimestamp
UTCタイムゾーンから他のタイムゾーンのタイムスタンプにDateTime/DateTime64型の値を変換します。この関数は、主にApache Sparkや類似のフレームワークとの互換性を考慮して含まれています。
構文
引数
time_val
— DateTime/DateTime64型の定数値または式。DateTime/DateTime64 typestime_zone
— タイムゾーンを表すString型の定数値または式。String types
返される値
- テキスト形式のDateTime/DateTime64
例
結果:
UTCTimestamp
クエリ解析の瞬間の現在の日付と時間を返します。この関数は定数式です。
この関数はnow('UTC')
が提供するのと同じ結果を返します。これはMySQLのサポートのために追加され、now
の使用が推奨されます。
構文
エイリアス: UTC_timestamp
。
返される値
- クエリ解析の瞬間の現在の日付と時間。DateTimeを返します。
例
クエリ:
結果:
timeDiff
2つの日付または時間付き日付の間の差を返します。差は秒単位で計算されます。これはdateDiff
と同じであり、MySQLのサポートのために追加されました。dateDiff
が推奨されます。
構文
引数
first_datetime
— DateTime/DateTime64型の定数値または式。DateTime/DateTime64 typessecond_datetime
— DateTime/DateTime64型の定数値または式。DateTime/DateTime64 types
返される値
2つの日付または時間付き日付の間の差を秒単位で返します。
例
クエリ:
結果: