カテゴリ:

日付と時刻の関数

DATE_PART

日付、時刻、またはタイムスタンプから指定された日付または時刻部分を抽出します。

代替候補:

EXTRACTHOUR / MINUTE / SECONDYEAR* / DAY* / WEEK* / MONTH / QUARTER

構文

DATE_PART( <date_or_time_part> , <date_or_timestamp_expr> )
Copy
DATE_PART( <date_or_time_part> FROM <date_or_time_expr> )
Copy

引数

date_or_time_part

時間の単位。 サポートされている日付と時刻の部分 (例: month)にリストされている値のいずれかでなければなりません。値は文字列リテラルにすることも、引用符で囲まないようにすることもできます(例: 'month' または month)。

  • date_or_time_partweek (またはそのバリエーション)の場合、出力は WEEK_START セッションパラメーターによって制御されます。

  • date_or_time_partdayofweek または yearofweek (またはそれらのバリエーション)の場合、出力は WEEK_OF_YEAR_POLICY および WEEK_START セッションパラメーターによって制御されます。

例などの詳細については、 カレンダーの週と平日 をご参照ください。

date_or_timestamp_expr

日付、時刻、または日付、時刻、タイムスタンプに評価できる式。

戻り値

NUMBER データ型の値を返します。

使用上の注意

現在、 date_or_timestamp_expr が DATE 値である場合、以下の date_or_time_part 値はサポートされていません。

  • epoch_millisecond

  • epoch_microsecond

  • epoch_nanosecond

その他の 日付と時刻の部分epoch_second を含む)がサポートされています。

これは、 DATE の一部を抽出する簡単な例を示しています。

SELECT DATE_PART(quarter, '2024-04-08'::DATE);
Copy
+----------------------------------------+
| DATE_PART(QUARTER, '2024-04-08'::DATE) |
|----------------------------------------|
|                                      2 |
+----------------------------------------+

これは、 TIMESTAMP の一部を抽出する例を示しています。

SELECT TO_TIMESTAMP(
  '2024-04-08T23:39:20.123-07:00') AS "TIME_STAMP1",
  DATE_PART(year, "TIME_STAMP1") AS "EXTRACTED YEAR";
Copy
+-------------------------+----------------+
| TIME_STAMP1             | EXTRACTED YEAR |
|-------------------------+----------------|
| 2024-04-08 23:39:20.123 |           2024 |
+-------------------------+----------------+

これは、 TIMESTAMP を Unixエポック (1970年1月1日午前0時)開始からの秒数に変換する例を示しています。

SELECT TO_TIMESTAMP(
  '2024-04-08T23:39:20.123-07:00') AS "TIME_STAMP1",
  DATE_PART(epoch_second, "TIME_STAMP1") AS "EXTRACTED EPOCH SECOND";
Copy
+-------------------------+------------------------+
| TIME_STAMP1             | EXTRACTED EPOCH SECOND |
|-------------------------+------------------------|
| 2024-04-08 23:39:20.123 |             1712619560 |
+-------------------------+------------------------+

これは、 TIMESTAMP を Unixエポック (1970年1月1日午前0時)開始からのミリ秒数に変換する例を示しています。

SELECT TO_TIMESTAMP(
  '2024-04-08T23:39:20.123-07:00') AS "TIME_STAMP1",
  DATE_PART(epoch_millisecond, "TIME_STAMP1") AS "EXTRACTED EPOCH MILLISECOND";
Copy
+-------------------------+-----------------------------+
| TIME_STAMP1             | EXTRACTED EPOCH MILLISECOND |
|-------------------------+-----------------------------|
| 2024-04-08 23:39:20.123 |               1712619560123 |
+-------------------------+-----------------------------+