カテゴリ:

日付と時刻の関数

YEAR* / DAY* / WEEK* / MONTH / QUARTER

日付またはタイムスタンプから対応する日付部分を抽出します。

これらの関数は、同等の日付部分で DATE_PART (または EXTRACT)関数を使用する代替手段です( サポートされている日付と時刻の部分 を参照)。

こちらもご参照ください。

HOUR / MINUTE / SECOND

構文

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> ) 
Copy

引数

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"; 
Copy
+-------------------------+------+-----------------+-------+-----+--------------+-------------+ | 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_POLICY1 に設定され、その年の1月1日を含む週がその年の第1週となります。

ALTER SESSION SET WEEK_OF_YEAR_POLICY = 1; 
Copy
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"; 
Copy
+-------------------------+------+----------+--------------+--------------+------------------+ | 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; 
Copy
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"; 
Copy
+-------------------------+------+----------+--------------+--------------+------------------+ | 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; 
Copy

以下のクエリのタイムスタンプは、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"; 
Copy
+-------------------------+-------------+-----------------+ | 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; 
Copy
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"; 
Copy
+-------------------------+-------------+-----------------+ | TSTAMP | DAY OF WEEK | DAY OF WEEK ISO | |-------------------------+-------------+-----------------| | 2025-04-05 23:39:20.123 | 6 | 6 | +-------------------------+-------------+-----------------+ 

その他の例については、 日付と時刻の値の操作 をご参照ください。

週に関する関数(DAYOFWEEK、 WEEK、 WEEKOFYEAR、 YEAROFWEEK など)の詳細な例については、 カレンダーの週と平日 をご参照ください。