日付・時刻関数
このページでは、TiDB Cloud Lake の日付・時刻関数について、参照しやすいように機能別に整理して包括的に紹介します。
現在の日付・時刻関数
| 関数 | 説明 | 例 |
|---|
| NOW | 現在の日付と時刻を返します | NOW() → 2024-06-04 17:42:31.123456 |
| CURRENT_TIMESTAMP | 現在の日付と時刻を返します | CURRENT_TIMESTAMP() → 2024-06-04 17:42:31.123456 |
| TODAY | 現在の日付を返します | TODAY() → 2024-06-04 |
| TOMORROW | 翌日の日付を返します | TOMORROW() → 2024-06-05 |
| YESTERDAY | 前日の日付を返します | YESTERDAY() → 2024-06-03 |
| 関数 | 説明 | 例 |
|---|
| YEAR | 日付から年を抽出します | YEAR('2024-06-04') → 2024 |
| MONTH | 日付から月を抽出します | MONTH('2024-06-04') → 6 |
| DAY | 日付から日を抽出します | DAY('2024-06-04') → 4 |
| QUARTER | 日付から四半期を抽出します | QUARTER('2024-06-04') → 2 |
| WEEK / WEEKOFYEAR | 日付から週番号を抽出します | WEEK('2024-06-04') → 23 |
| EXTRACT | 日付から一部を抽出します | EXTRACT(MONTH FROM '2024-06-04') → 6 |
| DATE_PART | 日付から一部を抽出します | DATE_PART('month', '2024-06-04') → 6 |
| YEARWEEK | 年と週番号を返します | YEARWEEK('2024-06-04') → 202423 |
| MILLENNIUM | 日付からミレニアムを返します | MILLENNIUM('2024-06-04') → 3 |
日付・時刻の変換関数
| 関数 | 説明 | 例 |
|---|
| DATE | 値を DATE 型に変換します | DATE('2024-06-04') → 2024-06-04 |
| TO_DATE | 文字列を DATE 型に変換します | TO_DATE('2024-06-04') → 2024-06-04 |
| TO_DATETIME | 文字列を DATETIME 型に変換します | TO_DATETIME('2024-06-04 12:30:45') → 2024-06-04 12:30:45 |
| TO_TIMESTAMP | 文字列を TIMESTAMP 型に変換します | TO_TIMESTAMP('2024-06-04 12:30:45') → 2024-06-04 12:30:45 |
| TO_UNIX_TIMESTAMP | 日付を Unix タイムスタンプに変換します | TO_UNIX_TIMESTAMP('2024-06-04') → 1717516800 |
| TO_YYYYMM | 日付を YYYYMM 形式にフォーマットします | TO_YYYYMM('2024-06-04') → 202406 |
| TO_YYYYMMDD | 日付を YYYYMMDD 形式にフォーマットします | TO_YYYYMMDD('2024-06-04') → 20240604 |
| TO_YYYYMMDDHH | 日付を YYYYMMDDHH 形式にフォーマットします | TO_YYYYMMDDHH('2024-06-04 12:30:45') → 2024060412 |
| TO_YYYYMMDDHHMMSS | 日付を YYYYMMDDHHMMSS 形式にフォーマットします | TO_YYYYMMDDHHMMSS('2024-06-04 12:30:45') → 20240604123045 |
| DATE_FORMAT | フォーマット文字列に従って日付を整形します | DATE_FORMAT('2024-06-04', '%Y-%m-%d') → '2024-06-04' |
| CONVERT_TIMEZONE | タイムスタンプを対象のタイムゾーンに変換します | CONVERT_TIMEZONE('America/Los_Angeles', '2024-11-01 11:36:10') → 2024-10-31 20:36:10 |
日付・時刻の算術関数
| 関数 | 説明 | 例 |
|---|
| DATE_ADD | 日付に時間間隔を加算します | DATE_ADD(DAY, 7, '2024-06-04') → 2024-06-11 |
| DATE_SUB | 日付から時間間隔を減算します | DATE_SUB(MONTH, 1, '2024-06-04') → 2024-05-04 |
| ADD INTERVAL | 日付に時間間隔を加算します | '2024-06-04' + INTERVAL 1 DAY → 2024-06-05 |
| SUBTRACT INTERVAL | 日付から時間間隔を減算します | '2024-06-04' - INTERVAL 1 MONTH → 2024-05-04 |
| DATE_DIFF | 2 つの日付の差を返します | DATE_DIFF(DAY, '2024-06-01', '2024-06-04') → 3 |
| TIMESTAMP_DIFF | 2 つのタイムスタンプの差を返します | TIMESTAMP_DIFF(HOUR, '2024-06-04 10:00:00', '2024-06-04 15:00:00') → 5 |
| MONTHS_BETWEEN | 2 つの日付の間の月数を返します | MONTHS_BETWEEN('2024-06-04', '2024-01-04') → 5 |
| DATE_BETWEEN | 2 つの日付の間の完全な単位数を整数で返します | DATE_BETWEEN(MONTH, '2025-07-31', '2025-10-01') → 2 |
| AGE | タイムスタンプ同士、またはタイムスタンプと現在の日付/時刻との差を計算します | AGE('2000-01-01'::TIMESTAMP, '1990-05-15'::TIMESTAMP) → 9 years 7 months 17 days |
| ADD_MONTHS | 月末日を維持しながら、日付に月を加算します。 | ADD_MONTHS('2025-04-30',1) → 2025-05-31 |
日付・時刻の切り捨て関数
| 関数 | 説明 | 例 |
|---|
| DATE_TRUNC | タイムスタンプを指定した精度に切り捨てます | DATE_TRUNC('month', '2024-06-04') → 2024-06-01 |
| TIME_SLICE | 単一の日付/タイムスタンプ値をカレンダーに整列した時間間隔にマッピングします | TIME_SLICE('2024-06-04', 4, 'MONTH', 'START') → 2024-05-01 |
| TO_START_OF_DAY | その日の開始時刻を返します | TO_START_OF_DAY('2024-06-04 12:30:45') → 2024-06-04 00:00:00 |
| TO_START_OF_HOUR | その時間の開始時刻を返します | TO_START_OF_HOUR('2024-06-04 12:30:45') → 2024-06-04 12:00:00 |
| TO_START_OF_MINUTE | その分の開始時刻を返します | TO_START_OF_MINUTE('2024-06-04 12:30:45') → 2024-06-04 12:30:00 |
| TO_START_OF_MONTH | その月の開始日を返します | TO_START_OF_MONTH('2024-06-04') → 2024-06-01 |
| TO_START_OF_QUARTER | その四半期の開始日を返します | TO_START_OF_QUARTER('2024-06-04') → 2024-04-01 |
| TO_START_OF_YEAR | その年の開始日を返します | TO_START_OF_YEAR('2024-06-04') → 2024-01-01 |
| TO_START_OF_WEEK | その週の開始日を返します | TO_START_OF_WEEK('2024-06-04') → 2024-06-03 |
日付・時刻のナビゲーション関数
| 関数 | 説明 | 例 |
|---|
| LAST_DAY | その月の最終日を返します | LAST_DAY('2024-06-04') → 2024-06-30 |
| NEXT_DAY | 指定した曜日の次の日付を返します | NEXT_DAY('2024-06-04', 'SUNDAY') → 2024-06-09 |
| PREVIOUS_DAY | 指定した曜日の前の日付を返します | PREVIOUS_DAY('2024-06-04', 'MONDAY') → 2024-06-03 |
その他の日付・時刻関数
| 関数 | 説明 | 例 |
|---|
| TIMEZONE | 現在のタイムゾーンを返します | TIMEZONE() → 'UTC' |
| TIME_SLOT | 時間スロットを返します | TIME_SLOT('2024-06-04 12:30:45', 15, 'MINUTE') → 2024-06-04 12:30:00 |