日付と時刻に関する関数
このセクションのほとんどの関数は、オプションのタイムゾーン引数を受け入れます。例: 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
— 戻り値のための 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
最初の引数 'expr' を DateTime64(6) 型に変換します。 2番目の引数 '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
日付または時刻の年(AD)コンポーネントを返します。
構文
エイリアス: 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です。日付のタイムゾーンは、3番目の引数として指定できます。
モード | 週の始まり | 範囲 |
---|---|---|
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)を返します。
時計が前に進められる場合、午後2時に1時間進むと仮定します。時計が後ろに戻される場合、午前3時に1時間戻すと仮定します(ただし、これは必ずしも正確な時刻ではなく、タイムゾーンによって異なります)。
構文
エイリアス: 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 Timestamp の 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
関数は、DateTime
を返します。これらの関数は拡張型Date32
とDateTime64
の値を引数として受け取ることができますが、通常の範囲外の時刻を渡すと(1970年から2149年の間のDate
/ 2106年のDateTime
)不正な結果を生じます。
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年の最初の日に切り下げます。通常の年とは異なる場合があります。(https://en.wikipedia.org/wiki/ISO_week_dateを参照してください。)
構文
引数
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
日付または日付付き時刻を最寄りの日曜日または月曜日に切り下げます。日付を返します。モード引数は、toWeek()
関数のモード引数と同様に機能します。モードが指定されていない場合は、デフォルトで0になります。
構文
引数
t
- Date、Date32、DateTime または DateTime64mode
- 上記のtoWeek()関数で説明されているように、週の始まりを決定します。timezone
- オプションのパラメータで、他の変換関数と同様に機能します。
戻り値
- 指定された日付の最寄りの日曜日または月曜日の日。 Date。
例
結果:
toLastDayOfWeek
日付または時間を含む日付を、最も近い土曜日または日曜日まで切り上げます。日付を返します。
mode引数は、関数toWeek()
のmode引数とまったく同じように機能します。modeが指定されていない場合、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
— 戻り値のタイムゾーン(オプション)。指定しない場合、関数はvalue
パラメータのタイムゾーンを使用します。 String。
戻り値
- サブ秒のない入力値。 DateTime64。
例
タイムゾーンなしのクエリ:
結果:
タイムゾーンありのクエリ:
結果:
関連情報
- タイムゾーンサーバー設定パラメータ。
toStartOfMillisecond
時間を含む日付を、ミリ秒の始まりまで切り下げます。
構文
引数
value
— 日付と時間。 DateTime64。timezone
— 戻り値のタイムゾーン(オプション)。指定しない場合、関数はvalue
パラメータのタイムゾーンを使用します。 String。
戻り値
- サブミリ秒のある入力値。 DateTime64。
例
タイムゾーンなしのクエリ:
結果:
タイムゾーンありのクエリ:
結果:
toStartOfMicrosecond
時間を含む日付を、マイクロ秒の始まりまで切り下げます。
構文
引数
value
— 日付と時間。 DateTime64。timezone
— 戻り値のタイムゾーン(オプション)。指定しない場合、関数はvalue
パラメータのタイムゾーンを使用します。 String。
戻り値
- サブマイクロ秒のある入力値。 DateTime64。
例
タイムゾーンなしのクエリ:
結果:
タイムゾーンありのクエリ:
結果:
関連情報
- タイムゾーンサーバー設定パラメータ。
toStartOfNanosecond
時間を含む日付を、ナノ秒の始まりまで切り下げます。
構文
引数
value
— 日付と時間。 DateTime64。timezone
— 戻り値のタイムゾーン(オプション)。指定しない場合、関数はvalue
パラメータのタイムゾーンを使用します。 String。
戻り値
- 入力値のナノ秒。 DateTime64。
例
タイムゾーンなしのクエリ:
結果:
タイムゾーンありのクエリ:
結果:
関連情報
- タイムゾーンサーバー設定パラメータ。
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 | 年0 |
QUARTER | 1900年第1四半期 |
MONTH | 1900年1月 |
WEEK | 1970年第1週 (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()
関数を模倣します。例えば、
結果:
関連情報
toTimeWithFixedDate
時間を持つ日付を、特定の固定日付に変換し、時間を保持します。
構文
エイリアス: toTime
- use_legacy_to_time
設定が有効なときのみ使用できます。
引数
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
— 日付または時間を持つ値。
戻り値
value
を現在のISO週番号に変換したもの。 UInt8。
例
クエリ:
レスポンス:
toWeek
この関数は、日付または日付時刻の週番号を返します。2引数形式のtoWeek()
は、週が日曜日または月曜日のどちらから始まるか、戻り値が0から53の範囲と1から53の範囲のどちらにするかを指定できます。mode引数が省略された場合、デフォルトのmodeは0です。
toISOWeek()
は、toWeek(date,3)
と同等の互換性関数です。
以下の表は、mode引数の動作を説明しています。
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日以上ある」という意味のmode値の場合、週はISO 8601:1988に従って番号付けされます:
-
1月1日を含む週が4日以上ある場合、それは週1になります。
-
そうでない場合、前の年の最後の週になり、次の週が週1となります。
「1月1日を含む」という意味のmode値の場合、1月1日を含む週が週1です。 新しい年の何日を含んでいるかは関係ありません。たとえ1日だけでも含んでいれば、それが週1になります。 つまり、12月の最終週が翌年の1月1日を含んでいれば、それは翌年の週1になります。
構文
エイリアス: WEEK
引数
t
– 日付またはDateTime。mode
– オプションのパラメータ,範囲は[0,9],デフォルトは0です。timezone
– オプションのパラメータ、他の変換関数と同じように振る舞います。
最初の引数は、Stringとしても指定でき、これはparseDateTime64BestEffort()でサポートされている形式です。文字列引数のサポートは、特定のサードパーティツールで期待されるMySQLとの互換性のためのみ存在します。文字列引数のサポートは将来的に新しいMySQL互換性設定に依存する可能性があるため、また、文字列パースは一般的に遅いため、使用することは推奨されません。
例
toYearWeek
日付の年と週を返します。結果の年は、年の最初と最後の週に対して、引数の日付の年と異なる場合があります。
mode引数はtoWeek()
のmode引数と同じように機能します。単一引数構文では、mode値0が使用されます。
toISOYear()
は、intDiv(toYearWeek(date,3),100)
と等しい互換性関数です。
toYearWeek()
が返す週番号は、toWeek()
が返す週番号とは異なる可能性があります。toWeek()
は、常に与えられた年の文脈における週番号を返し、toWeek()
が0
を返す場合、toYearWeek()
は前の年の最後の週に対応する値を返します。以下の例のprev_yearWeek
を参照してください。
構文
エイリアス: YEARWEEK
最初の引数は、Stringとしても指定でき、これはparseDateTime64BestEffort()でサポートされている形式です。文字列引数のサポートは、特定のサードパーティツールで期待されるMySQLとの互換性のためのみ存在します。文字列引数のサポートは将来的に新しいMySQL互換性設定に依存する可能性があり、文字列パースは一般的に遅い為、使用することは推奨されません。
例
toDaysSinceYearZero
指定された日付に対して、1 January 0000から経過した日数を返します。この計算は、ISO 8601によって定義された古典的グレゴリオ暦と同じです。この計算は、MySQLのTO_DAYS()
関数と同じです。
構文
エイリアス: TO_DAYS
引数
date
— 年ゼロから経過した日数を計算する日付。 Date、Date32、DateTimeまたはDateTime64。time_zone
— タイムゾーンを表す文字列型の値または式。 String types
戻り値
日付0000-01-01から経過した日数の数。 UInt32。
例
結果:
関連情報
fromDaysSinceYearZero
指定された年ゼロから経過した日数に対して、ISO 8601によって定義された古典的グレゴリオ暦の日付を返します。この計算は、MySQLのFROM_DAYS()
関数と同じです。
結果は、Date型の範囲内で表すことができない場合は未定義になります。
構文
エイリアス: FROM_DAYS
引数
days
— 年ゼロから経過した日数。
戻り値
年ゼロから経過した日数に対応する日付。 Date。
例
結果:
関連情報
fromDaysSinceYearZero32
spからの相対的な日数を表すようなもので、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
— 引き算される2番目の時刻値(減数)。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
— 引き算される2番目の時刻値(減数)。Date, Date32, DateTime または DateTime64。 -
timezone
— タイムゾーン名(オプション)。指定された場合、startdate
とenddate
の両方に適用されます。指定されていない場合は、startdate
とenddate
のタイムゾーンが使用されます。異なる場合、結果は未定義です。String。
返される値
enddate
とstartdate
の差をunit
で表現します。Int。
例
結果:
結果:
date_trunc
日付と時刻データを指定された日付の部分に切り捨てます。
構文
エイリアス: dateTrunc
.
引数
-
unit
— 結果を切り捨てる間隔のタイプ。String Literal。 可能な値:nanosecond
- DateTime64と互換性microsecond
- DateTime64と互換性millisecond
- DateTime64と互換性second
minute
hour
day
week
month
quarter
year
unit
引数は大文字と小文字を区別しません。 -
value
— 日付と時刻。Date, Date32, DateTime または DateTime64. -
timezone
— 返される値のタイムゾーン名(オプション)。指定されていない場合、関数はvalue
パラメータのタイムゾーンを使用します。String。
返される値
unit
引数がYear、Quarter、Month、またはWeekの場合、
unit
引数がDay、Hour、Minute、またはSecondの場合、
value
引数がDate32またはDateTime64であれば、DateTime64が返され、- それ以外の場合は、DateTimeが返されます。
unit
引数がMillisecond、Microsecond、またはNanosecondの場合、スケール3または6または9(単位引数に応じて)を持つDateTime64が返されます。
例
タイムゾーンなしのクエリ:
結果:
指定されたタイムゾーンを使用したクエリ:
結果:
関連情報
date_add
提供された日付または時間付きの日付に時間間隔または日付間隔を追加します。
追加の結果がデータ型の範囲を超える場合、結果は未定義です。
構文
代替構文:
エイリアス: dateAdd
, DATE_ADD
.
引数
-
unit
— 追加する間隔のタイプ。注意: これはStringではなく、引用されるべきではありません。 可能な値:second
minute
hour
day
week
month
quarter
year
-
value
— 追加する間隔の値。Int。 -
date
—value
が追加される日付または時間付きの日付。Date, Date32, DateTime または DateTime64。
返される値
date
に対してunit
で表現されたvalue
が追加された日付または時間付きの日付。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。
返される値
date
からunit
で表現されたvalue
が引かれた日付または時間付きの日付。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。
返される値
date
からvalue
がunit
で引かれた日付または時間付きの日付。Date, Date32, DateTime または DateTime64。
例
結果:
addDate
時間間隔を提供された日付、時間付き日付、または文字列エンコードされた日付に追加します。
追加の結果がデータ型の範囲を超える場合、結果は未定義です。
構文
引数
date
—interval
が追加される日付または時間付き日付。Date, Date32, DateTime, DateTime64、またはStringinterval
— 追加する間隔。Interval。
返される値
date
にinterval
が追加された日付または時間付き日付。Date, Date32, DateTime または DateTime64。
例
結果:
エイリアス: ADDDATE
関連情報
subDate
時間間隔を提供された日付、時間付き日付、または文字列エンコードされた日付から減算します。
減算の結果がデータ型の範囲を超える場合、結果は未定義です。
構文
引数
date
—interval
が引かれる日付または時間付き日付。Date, Date32, DateTime, DateTime64、またはStringinterval
— 引く間隔。Interval。
返される値
date
からinterval
が引かれた日付または時間付き日付。Date, Date32, DateTime または DateTime64。
例
結果:
エイリアス: SUBDATE
関連情報
now
クエリ解析の瞬間での現在の日付と時刻を返します。この関数は定数式です。
エイリアス: current_timestamp
.
構文
引数
返される値
- 現在の日付と時刻。DateTime。
例
タイムゾーンなしのクエリ:
結果:
指定されたタイムゾーンを使用したクエリ:
結果:
now64
クエリ解析の瞬間でのサブ秒精度を持つ現在の日付と時刻を返します。この関数は定数式です。
構文
引数
scale
- チックサイズ(精度): 10-precision秒。正当な範囲: [ 0 : 9 ]。通常、使用されるのは - 3(デフォルト)(ミリ秒)、6(マイクロ秒)、9(ナノ秒)です。timezone
— 返される値のタイムゾーン名(オプション)。String。
返される値
- サブ秒精度を持つ現在の日付と時刻。DateTime64。
例
結果:
nowInBlock
各データブロックの処理の瞬間での現在の日付と時刻を返します。now関数とは異なり、定数式ではなく、長時間実行されるクエリでは異なるブロックで返される値が異なる場合があります。
この関数を使用すると、長時間実行されるINSERT SELECTクエリで現在の時刻を生成するのに意味があります。
構文
引数
返される値
- 各データブロックの処理の瞬間での現在の日付と時刻。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
の値を引数として受け取ることができますが、通常の範囲(年1970年から2149年まで、Date
/2106年までのDateTime
)の外の時間を渡すと、誤った結果が出力されます。
戻り値の型
- 30分の長さの間隔の開始に丸められた時間を返します。DateTime。
例
クエリ:
結果:
toYYYYMM
日付または時刻を含む日付を、年と月の番号を含むUInt32数(YYYY * 100 + MM)に変換します。2番目のオプションのタイムゾーン引数を受け取ります。提供された場合、タイムゾーンは文字列定数でなければなりません。
この関数は関数YYYYMMDDToDate()
の逆です。
例
結果:
toYYYYMMDD
日付または時刻を含む日付を、年、月、日を含むUInt32数(YYYY * 10000 + MM * 100 + DD)に変換します。2番目のオプションのタイムゾーン引数を受け取ります。提供された場合、タイムゾーンは文字列定数でなければなりません。
例
結果:
toYYYYMMDDhhmmss
日付または時刻を含む日付を、年、月、日、時間、分、秒を含むUInt64数(YYYY * 10000000000 + MM * 100000000 + DD * 1000000 + hh * 10000 + mm * 100 + ss)に変換します。2番目のオプションのタイムゾーン引数を受け取ります。提供された場合、タイムゾーンは文字列定数でなければなりません。
例
結果:
YYYYMMDDToDate
年、月、日を含む数をDateに変換します。
この関数は関数toYYYYMMDD()
の逆です。
入力が有効なDate値をエンコードしていない場合、出力は未定義です。
構文
引数
返される値
- 引数から作成された日付。Date。
例
結果:
YYYYMMDDToDate32
関数YYYYMMDDToDate()
と同様ですが、Date32を生成します。
YYYYMMDDhhmmssToDateTime
年、月、日、時間、分、秒を含む数をDateTimeに変換します。
入力が有効なDateTime値をエンコードしていない場合、出力は未定義です。
この関数は関数toYYYYMMDDhhmmss()
の逆です。
構文
引数
返される値
- 引数から作成された時間付きの日付。DateTime。
例
結果:
YYYYMMDDhhmmssToDateTime64
関数YYYYMMDDhhmmssToDate()
と同様ですが、DateTime64を生成します。
タイムゾーン引数の後に追加のオプションのprecision
パラメータを受け取ります。
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
: 指定した数の年を追加する日付 / 日時。Date/Date32/DateTime/DateTime64、String。num
: 追加する年数。(U)Int*](../data-types/int-uint.md)、Float*。
戻り値
date
にnum
年を加えた結果を返します。Date/Date32/DateTime/DateTime64。
例
結果:
addQuarters
日付、日時、または文字列でエンコードされた日付/日時に指定した数の四半期を追加します。
構文
引数
date
: 指定した数の四半期を追加する日付 / 日時。Date/Date32/DateTime/DateTime64、String。num
: 追加する四半期の数。(U)Int*](../data-types/int-uint.md)、Float*。
戻り値
date
にnum
四半期を加えた結果を返します。Date/Date32/DateTime/DateTime64。
例
結果:
addMonths
日付、日時、または文字列でエンコードされた日付/日時に指定した数の月を追加します。
構文
引数
date
: 指定した数の月を追加する日付 / 日時。Date/Date32/DateTime/DateTime64、String。num
: 追加する月の数。(U)Int*](../data-types/int-uint.md)、Float*。
戻り値
date
にnum
月を加えた結果を返します。Date/Date32/DateTime/DateTime64。
例
結果:
addWeeks
日付、日時、または文字列でエンコードされた日付/日時に指定した数の週を追加します。
構文
引数
date
: 指定した数の週を追加する日付 / 日時。Date/Date32/DateTime/DateTime64、String。num
: 追加する週の数。(U)Int*](../data-types/int-uint.md)、Float*。
戻り値
date
にnum
週を加えた結果を返します。Date/Date32/DateTime/DateTime64。
例
結果:
addDays
日付、日時、または文字列でエンコードされた日付/日時に指定した数の日を追加します。
構文
引数
date
: 指定した数の日を追加する日付 / 日時。Date/Date32/DateTime/DateTime64、String。num
: 追加する日の数。(U)Int*](../data-types/int-uint.md)、Float*。
戻り値
date
にnum
日を加えた結果を返します。Date/Date32/DateTime/DateTime64。
例
結果:
addHours
日付、日時、または文字列でエンコードされた日付/日時に指定した数の時間を追加します。
構文
引数
date
: 指定した数の時間を追加する日付 / 日時。Date/Date32/DateTime/DateTime64、String。num
: 追加する時間の数。(U)Int*](../data-types/int-uint.md)、Float*。
戻り値
date
にnum
時間を加えた結果を返します。Date/Date32/DateTime/DateTime64。
例
結果:
addMinutes
日付、日時、または文字列でエンコードされた日付/日時に指定した数の分を追加します。
構文
引数
date
: 指定した数の分を追加する日付 / 日時。Date/Date32/DateTime/DateTime64、String。num
: 追加する分の数。(U)Int*](../data-types/int-uint.md)、Float*。
戻り値
date
にnum
分を加えた結果を返します。Date/Date32/DateTime/DateTime64。
例
結果:
addSeconds
日付、日時、または文字列でエンコードされた日付/日時に指定した数の秒を追加します。
構文
引数
date
: 指定した数の秒を追加する日付 / 日時。Date/Date32/DateTime/DateTime64、String。num
: 追加する秒の数。(U)Int*](../data-types/int-uint.md)、Float*。
戻り値
date
にnum
秒を加えた結果を返します。Date/Date32/DateTime/DateTime64。
例
結果:
addMilliseconds
日時または文字列でエンコードされた日時に指定した数のミリ秒を追加します。
構文
引数
date_time
: 指定した数のミリ秒を追加する日時。DateTime/DateTime64、String。num
: 追加するミリ秒の数。(U)Int*](../data-types/int-uint.md)、Float*。
戻り値
date_time
にnum
ミリ秒を加えた結果を返します。DateTime64。
例
結果:
addMicroseconds
日時または文字列でエンコードされた日時に指定した数のマイクロ秒を追加します。
構文
引数
date_time
: 指定した数のマイクロ秒を追加する日時。DateTime/DateTime64、String。num
: 追加するマイクロ秒の数。(U)Int*](../data-types/int-uint.md)、Float*。
戻り値
date_time
にnum
マイクロ秒を加えた結果を返します。DateTime64。
例
結果:
addNanoseconds
日時または文字列でエンコードされた日時に指定した数のナノ秒を追加します。
構文
引数
date_time
: 指定した数のナノ秒を追加する日時。DateTime/DateTime64、String。num
: 追加するナノ秒の数。(U)Int*](../data-types/int-uint.md)、Float*。
戻り値
date_time
にnum
ナノ秒を加えた結果を返します。DateTime64。
例
結果:
addInterval
ある間隔を別の間隔または間隔のタプルに追加します。
構文
引数
戻り値
同じタイプの間隔は1つの間隔に結合されます。たとえば、toIntervalDay(1)
と toIntervalDay(2)
が渡されると、結果は (3)
となり (1,1)
にはなりません。
例
クエリ:
結果:
addTupleOfIntervals
日付または日時に対して間隔のタプルを順次追加します。
構文
引数
戻り値
date
に追加されたintervals
を返します。date/date32/datetime/datetime64。
例
クエリ:
結果:
subtractYears
日付、日時、または文字列でエンコードされた日付/日時から指定した数の年を引きます。
構文
引数
date
: 指定した数の年を引く日付 / 日時。Date/Date32/DateTime/DateTime64、String。num
: 引く年数。(U)Int*](../data-types/int-uint.md)、Float*。
戻り値
date
からnum
年を引いた結果を返します。Date/Date32/DateTime/DateTime64。
例
結果:
subtractQuarters
日付、日時、または文字列でエンコードされた日付/日時から指定した数の四半期を引きます。
構文
引数
date
: 指定した数の四半期を引く日付 / 日時。Date/Date32/DateTime/DateTime64、String。num
: 引く四半期の数。(U)Int*](../data-types/int-uint.md)、Float*。
戻り値
date
からnum
四半期を引いた結果を返します。Date/Date32/DateTime/DateTime64。
例
結果:
subtractMonths
日付、日時、または文字列でエンコードされた日付/日時から指定した数の月を引きます。
構文
引数
date
: 指定した数の月を引く日付 / 日時。Date/Date32/DateTime/DateTime64、String。num
: 引く月の数。(U)Int*](../data-types/int-uint.md)、Float*。
戻り値
date
からnum
月を引いた結果を返します。Date/Date32/DateTime/DateTime64。
例
結果:
subtractWeeks
日付、日時、または文字列でエンコードされた日付/日時から指定した数の週を引きます。
構文
引数
date
: 指定した数の週を引く日付 / 日時。Date/Date32/DateTime/DateTime64、String。num
: 引く週の数。(U)Int*](../data-types/int-uint.md)、Float*。
戻り値
date
からnum
週を引いた結果を返します。Date/Date32/DateTime/DateTime64。
例
結果:
subtractDays
日付、日時、または文字列でエンコードされた日付/日時から指定した数の日を引きます。
構文
引数
date
: 指定した数の日を引く日付 / 日時。Date/Date32/DateTime/DateTime64、String。num
: 引く日の数。(U)Int*](../data-types/int-uint.md)、Float*。
戻り値
date
からnum
日を引いた結果を返します。Date/Date32/DateTime/DateTime64。
例
結果:
subtractHours
日付、日時、または文字列でエンコードされた日付/日時から指定した数の時間を引きます。
構文
引数
date
: 指定した数の時間を引く日付 / 日時。Date/Date32/Datetime/Datetime64、String。num
: 引く時間の数。(U)Int*](../data-types/int-uint.md)、Float*。
戻り値
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
ネガティブインターバルを他のインターバルまたはインターバルのタプルから引きます。
構文
パラメータ
interval_1
: 最初のインターバルまたはタプルのインターバル。 interval、tuple(interval)。interval_2
: 反転させる2番目のインターバル。 interval。
戻り値
同じタイプのインターバルは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 の日時フォーマットスタイルを使用します。詳しくは こちら を参照してください。
この関数の逆の操作は parseDateTime です。
エイリアス: DATE_FORMAT
。
構文
戻り値
指定されたフォーマットに従った日時の値を返します。
置換フィールド
置換フィールドを使用して、結果文字列のパターンを定義できます。「例」カラムには 2018-01-02 22:33:44
のフォーマット結果が示されています。
プレースホルダー | 説明 | 例 |
---|---|---|
%a | 省略形の曜日名 (月〜日) | 月曜日 |
%b | 省略形の月名 (1月〜12月) | 1月 |
%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)、'注記5' を参照 | 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' を参照 | 1月 |
%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 | ISO 8601 曜日を数字で、月曜日を1(1-7)とする | 2 |
%V | ISO 8601 週番号 (01-53) | 01 |
%w | 日曜日を0(0-6)として、整数で曜日を表現 | 2 |
%W | 完全な曜日名 (月曜日〜日曜日) | 月曜日 |
%y | 年の最後の2桁 (00-99) | 18 |
%Y | 年 | 2018 |
%z | +HHMM または -HHMM 形式のUTCオフセット | -0500 |
%% | % 記号 | % |
注記 1: ClickHouse のバージョンが v23.4 より前の場合、%f はフォーマット値が Date、Date32 または DateTime(小数点以下の秒なし)または精度が 0 の DateTime64 の場合、単一のゼロ (0) を印刷します。以前の動作は設定 formatdatetime_f_prints_single_zero = 1
を使用して復元できます。
注記 2: ClickHouse のバージョンが v25.1 より前の場合、%f は提供された DateTime64 のスケールによって指定された桁数だけ印刷します。以前の動作は設定 formatdatetime_f_prints_scale_number_of_digits= 1
を使用して復元できます。
注記 3: ClickHouse のバージョンが v23.4 より前の場合、%M は完全な月名 (1月〜12月) の代わりに分 (00-59) を印刷します。以前の動作は設定 formatdatetime_parsedatetime_m_is_month_name = 0
を使用して復元できます。
注記 4: ClickHouse のバージョンが v23.11 より前の場合、parseDateTime
関数はフォーマッタ %c
(月)と %l
/%k
(時間)のために先頭のゼロを要求しました。後のバージョンでは、先頭のゼロが省略できるようになりました。以前の動作は設定 parsedatetime_parse_without_leading_zeros = 0
を使用して復元できます。関数 formatDateTime
は、デフォルトで %c
および %l
/%k
の先頭のゼロを印刷して、既存の使用ケースを壊さないようにします。この動作は設定 formatdatetime_format_without_leading_zeros = 1
によって変更できます。
注記 5: ClickHouse のバージョンが v25.5 より前の場合、parseDateTime
関数はフォーマッタ %e
に対して、1桁の日をスペースで埋めることを要求しました。後のバージョンでは、スペースでの埋めはオプションになり、3
と 3
の両方が動作します。以前の動作を保持するには、設定 parsedatetime_e_requires_space_padding = 1
を設定します。同様に、formatDateTime
関数内のフォーマッタ %e
は、以前は単一桁を条件なしでスペースで埋めましたが、今はスペースなしで印刷します。以前の動作を保持するには、設定 formatdatetime_e_with_space_padding = 1
を設定します。
例
結果:
結果:
さらに、 formatDateTime
関数は、タイムゾーン名を含む3番目の文字列引数を受け取ることができます。例:Asia/Istanbul
。この場合、時刻は指定されたタイムゾーンに従ってフォーマットされます。
例
参照
formatDateTimeInJodaSyntax
formatDateTime と似ていますが、MySQLスタイルではなく Joda スタイルで日時をフォーマットします。詳しくは こちら を参照してください。
この関数の逆の操作は parseDateTimeInJodaSyntax です。
置換フィールド
置換フィールドを使用して、結果文字列のパターンを定義できます。
プレースホルダー | 説明 | プレゼンテーション | 例 |
---|---|---|---|
G | 紀元 | テキスト | AD |
C | 紀元の世紀 (>=0) | 数字 | 20 |
Y | 紀元の年 (>=0) | 年 | 1996 |
x | 週年(未対応) | 年 | 1996 |
w | 週の週年(未対応) | 数字 | 27 |
e | 週の日 | 数字 | 2 |
E | 週の日 | テキスト | 火曜日; 火 |
y | 年 | 年 | 1996 |
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 |
' | テキスト用のエスケープ | デリミタ | |
'' | 単一引用符 | リテラル | ' |
例
結果:
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つの方法で呼び出すことができます:
1つの引数として Integer 型の値を与えられた場合、DateTime 型の値を返します。つまり、toDateTime のように動作します。
エイリアス: FROM_UNIXTIME
。
例:
結果:
最初の引数が Integer、Date、Date32、DateTime または DateTime64 型の値で、2番目の引数が定数形式文字列、3番目の引数がオプションの定数タイムゾーン文字列の場合、この関数は String 型の値を返します。つまり、formatDateTime のように動作します。この場合、MySQLの日時形式スタイル が使用されます。
例:
結果:
関連情報
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
fromModifiedJulianDayOrNull()と似ていますが、例外を発生させる代わりにNULL
を返します。
構文
引数
day
— 修正ジュリアン日番号。 Any integral types。
返される値
- テキスト形式の日付。 Nullable(String)
例
結果:
toUTCTimestamp
他のタイムゾーンからUTCタイムゾーンのタイムスタンプにDateTime/DateTime64型値を変換します。この関数は主にApache Sparkや同様のフレームワークとの互換性のために含まれています。
構文
引数
time_val
— DateTime/DateTime64型の定数値または式。 DateTime/DateTime64 typestime_zone
— タイムゾーンを表す文字列型の定数値または式。 String types
返される値
- テキスト形式のDateTime/DateTime64
例
結果:
fromUTCTimestamp
UTCタイムゾーンから他のタイムゾーンのタイムスタンプにDateTime/DateTime64型値を変換します。この関数は主にApache Sparkや同様のフレームワークとの互換性のために含まれています。
構文
引数
time_val
— DateTime/DateTime64型の定数値または式。 DateTime/DateTime64 typestime_zone
— タイムゾーンを表す文字列型の定数値または式。 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つの日付または日時付きの日付の差を秒単位で返します。
例
クエリ:
結果: