- カテゴリ:
 
YEAR* / DAY* / WEEK* / MONTH / QUARTER¶
日付またはタイムスタンプから対応する日付部分を抽出します。
これらの関数は、同等の日付部分で DATE_PART (または EXTRACT)関数を使用する代替手段です( サポートされている日付と時刻の部分 を参照)。
- こちらもご参照ください。
 
構文¶
YEAR( <date_or_timestamp_expr> )
YEAROFWEEK( <date_or_timestamp_expr> )
YEAROFWEEKISO( <date_or_timestamp_expr> )
DAY( <date_or_timestamp_expr> )
DAYOFMONTH( <date_or_timestamp_expr> )
DAYOFWEEK( <date_or_timestamp_expr> )
DAYOFWEEKISO( <date_or_timestamp_expr> )
DAYOFYEAR( <date_or_timestamp_expr> )
WEEK( <date_or_timestamp_expr> )
WEEKOFYEAR( <date_or_timestamp_expr> )
WEEKISO( <date_or_timestamp_expr> )
MONTH( <date_or_timestamp_expr> )
QUARTER( <date_or_timestamp_expr> )
引数¶
date_or_timestamp_expr日付またはタイムスタンプ、または日付またはタイムスタンプに評価できる式。
戻り値¶
この関数は NUMBER型の値を返します。
使用上の注意¶
関数名  | 
入力された日付またはタイムスタンプから抽出された日付部分  | 
可能な値  | 
|---|---|---|
YEAR  | 
年  | 
有効な年(例: 2025年)  | 
YEAROFWEEK [1]  | 
抽出された週が属する年  | 
有効な年(例: 2025年)  | 
YEAROFWEEKISO  | 
ISO セマンティクス に基づいて、抽出された週が属する年  | 
有効な年(例: 2025年)  | 
DAY , DAYOFMONTH  | 
月の日付(数値)  | 
1~31  | 
DAYOFWEEK [1]  | 
週の日付(数値)  | 
0~7  | 
DAYOFWEEKISO  | 
ISO セマンティクス に基づいた週の曜日(数値)  | 
1~7  | 
DAYOFYEAR  | 
年の日付(数値)  | 
1~366  | 
WEEK 、 WEEKOFYEAR [1]  | 
年の週(数値)  | 
1~54  | 
WEEKISO  | 
ISO セマンティクス に基づいた年の週(数値)  | 
1~53  | 
MONTH  | 
年の月(数値)  | 
1~12  | 
QUARTER  | 
年の四半期(数値)  | 
1~4  | 
[1] WEEK_OF_YEAR_POLICY および/または WEEK_START セッションパラメーターに設定された値によって示される結果です。
ISO セマンティクスとパラメーターの詳細については、 カレンダーの週と平日 をご参照ください。
例¶
以下の例は、関数 YEAR、 QUARTER、 MONTH、 DAY、 DAYOFWEEK、 DAYOFYEAR の使い方を示しています。
SELECT '2025-04-11T23:39:20.123-07:00'::TIMESTAMP AS tstamp,
       YEAR(tstamp) AS "YEAR",
       QUARTER(tstamp) AS "QUARTER OF YEAR",
       MONTH(tstamp) AS "MONTH",
       DAY(tstamp) AS "DAY",
       DAYOFMONTH(tstamp) AS "DAY OF MONTH",
       DAYOFYEAR(tstamp) AS "DAY OF YEAR";
+-------------------------+------+-----------------+-------+-----+--------------+-------------+
| TSTAMP                  | YEAR | QUARTER OF YEAR | MONTH | DAY | DAY OF MONTH | DAY OF YEAR |
|-------------------------+------+-----------------+-------+-----+--------------+-------------|
| 2025-04-11 23:39:20.123 | 2025 |               2 |     4 |  11 |           11 |         101 |
+-------------------------+------+-----------------+-------+-----+--------------+-------------+
以下の例は、関数 WEEK、 WEEKISO、 WEEKOFYEAR、 YEAROFWEEK、 YEAROFWEEKISO の使い方を示しています。セッションパラメーター WEEK_OF_YEAR_POLICY は 1 に設定され、その年の1月1日を含む週がその年の第1週となります。
ALTER SESSION SET WEEK_OF_YEAR_POLICY = 1;
SELECT '2016-01-02T23:39:20.123-07:00'::TIMESTAMP AS tstamp,
       WEEK(tstamp) AS "WEEK",
       WEEKISO(tstamp) AS "WEEK ISO",
       WEEKOFYEAR(tstamp) AS "WEEK OF YEAR",
       YEAROFWEEK(tstamp) AS "YEAR OF WEEK",
       YEAROFWEEKISO(tstamp) AS "YEAR OF WEEK ISO";
+-------------------------+------+----------+--------------+--------------+------------------+
| TSTAMP                  | WEEK | WEEK ISO | WEEK OF YEAR | YEAR OF WEEK | YEAR OF WEEK ISO |
|-------------------------+------+----------+--------------+--------------+------------------|
| 2016-01-02 23:39:20.123 |    1 |       53 |            1 |         2016 |             2015 |
+-------------------------+------+----------+--------------+--------------+------------------+
以下の例は、関数 WEEK、 WEEKISO、 WEEKOFYEAR、 YEAROFWEEK、 YEAROFWEEKISO の使用法も示しています。セッションパラメーター WEEK_OF_YEAR_POLICY は、その年の最初の週が、その年の少なくとも4日を含む週であることを示すように設定されます。この例では、2015年12月27日から2016年1月2日までの週は、2016年の第1週ではなく、2015年の最終週とみなされます。この週には2016年1月1日(金)が含まれていますが、週の半分以下は2016年です。
ALTER SESSION SET WEEK_OF_YEAR_POLICY = 0;
SELECT '2016-01-02T23:39:20.123-07:00'::TIMESTAMP AS tstamp,
       WEEK(tstamp) AS "WEEK",
       WEEKISO(tstamp) AS "WEEK ISO",
       WEEKOFYEAR(tstamp) AS "WEEK OF YEAR",
       YEAROFWEEK(tstamp) AS "YEAR OF WEEK",
       YEAROFWEEKISO(tstamp) AS "YEAR OF WEEK ISO";
+-------------------------+------+----------+--------------+--------------+------------------+
| TSTAMP                  | WEEK | WEEK ISO | WEEK OF YEAR | YEAR OF WEEK | YEAR OF WEEK ISO |
|-------------------------+------+----------+--------------+--------------+------------------|
| 2016-01-02 23:39:20.123 |   53 |       53 |           53 |         2015 |             2015 |
+-------------------------+------+----------+--------------+--------------+------------------+
次の例は、関数 DAYOFWEEK と DAYOFWEEKISO の使い方を示しています。セッションパラメーター WEEK_START は、週が日曜日に始まることを示すように設定されています。
ALTER SESSION SET WEEK_START = 7;
以下のクエリのタイムスタンプは、2025年4月5日(土曜日)のものです。DAYOFWEEK 関数は、週の最初の曜日が日曜日にセットされているため、土曜日の 7 を返します。ISO セマンティクスを使用する週の最初の曜日は月曜日であるため、 DAYOFWEEKISO 関数は 6 を返します。ISO セマンティクスと WEEK_START パラメーターの情報については、 カレンダーの週と平日 をご参照ください。
SELECT '2025-04-05T23:39:20.123-07:00'::TIMESTAMP AS tstamp,
       DAYOFWEEK(tstamp) AS "DAY OF WEEK",
       DAYOFWEEKISO(tstamp) AS "DAY OF WEEK ISO";
+-------------------------+-------------+-----------------+
| TSTAMP                  | DAY OF WEEK | DAY OF WEEK ISO |
|-------------------------+-------------+-----------------|
| 2025-04-05 23:39:20.123 |           7 |               6 |
+-------------------------+-------------+-----------------+
以下の例では、関数 DAYOFWEEK と DAYOFWEEKISO の使用例も示しています。セッションパラメーター WEEK_START は、週が月曜日に始まることを示すように設定されています。
ALTER SESSION SET WEEK_START = 1;
SELECT '2025-04-05T23:39:20.123-07:00'::TIMESTAMP AS tstamp,
       DAYOFWEEK(tstamp) AS "DAY OF WEEK",
       DAYOFWEEKISO(tstamp) AS "DAY OF WEEK ISO";
+-------------------------+-------------+-----------------+
| TSTAMP                  | DAY OF WEEK | DAY OF WEEK ISO |
|-------------------------+-------------+-----------------|
| 2025-04-05 23:39:20.123 |           6 |               6 |
+-------------------------+-------------+-----------------+
その他の例については、 日付と時刻の値の操作 をご参照ください。
週に関する関数(DAYOFWEEK、 WEEK、 WEEKOFYEAR、 YEAROFWEEK など)の詳細な例については、 カレンダーの週と平日 をご参照ください。