DATE_TRUNC
日付またはタイムスタンプを指定した精度に切り捨て、日付とタイムスタンプを標準化された方法で操作できるようにします。この関数はさまざまなデータベースシステムとの互換性を考慮して設計されており、ユーザーが異なるデータベース間で移行や作業をしやすくします。
構文
DATE_TRUNC(<precision>, <date_or_timestamp>)
週の開始設定
精度パラメーターとして WEEK を使用する場合、結果は週の最初の日を定義する week_start 設定に依存します。
week_start = 1(default): 月曜日が週の最初の日と見なされますweek_start = 0: 日曜日が週の最初の日と見なされます
特定のクエリに対してこの設定を変更するには、SETTINGS 句を使用できます。
-- Set Sunday as the first day of the week
SETTINGS (week_start = 0) SELECT DATE_TRUNC(WEEK, to_date('2024-04-05'));
-- Set Monday as the first day of the week (default)
SETTINGS (week_start = 1) SELECT DATE_TRUNC(WEEK, to_date('2024-04-05'));
戻り値の型
<date_or_timestamp> と同じです。
例
SELECT
DATE_TRUNC(MONTH, to_date('2022-07-07')),
DATE_TRUNC(WEEK, to_date('2022-07-07'));
┌────────────────────────────────────────────────────────────────────────────────────┐
│ DATE_TRUNC(MONTH, to_date('2022-07-07')) │ DATE_TRUNC(WEEK, to_date('2022-07-07')) │
├──────────────────────────────────────────┼─────────────────────────────────────────┤
│ 2022-07-01 │ 2022-07-04 │
└────────────────────────────────────────────────────────────────────────────────────┘
SELECT
DATE_TRUNC(HOUR, to_timestamp('2022-07-07 01:01:01.123456')),
DATE_TRUNC(SECOND, to_timestamp('2022-07-07 01:01:01.123456'));
┌────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│ DATE_TRUNC(HOUR, to_timestamp('2022-07-07 01:01:01.123456')) │ DATE_TRUNC(SECOND, to_timestamp('2022-07-07 01:01:01.123456')) │
├─────────────────────────────────────────────────────────────┼────────────────────────────────────────────────────────────────┤
│ 2022-07-07 01:00:00.000000 │ 2022-07-07 01:01:01.000000 │
└────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
関連情報
- TRUNC: より高い SQL 標準互換性のために、異なる構文で同様の機能を提供します。
- TIME_SLICE: 単一の日付/タイムスタンプ値を、カレンダーに整列した時間間隔にマッピングします。