- カテゴリ:
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> )
使用上の注意¶
関数名 |
入力日付/タイムスタンプから抽出された日付部分 |
可能な値 |
---|---|---|
YEAR |
年 |
有効な年(例:2017) |
YEAROFWEEK [1] |
抽出された週が属する年 |
有効な年(例:2017) |
YEAROFWEEKISO |
ISO セマンティクスを使用することを除いて、 YEAROFWEEKと同じ |
有効な年(例:2017) |
DAY , DAYOFMONTH |
月の日付(数値) |
1~31 |
DAYOFWEEK [1] |
週の日付(数値) |
0~7 |
DAYOFWEEKISO |
ISO セマンティクスを使用することを除いて、 DAYOFWEEKと同じ |
1~7 |
DAYOFYEAR |
年の日付(数値) |
1~366 |
WEEK 、 WEEKOFYEAR [1] |
年の週(数値) |
1~54 |
WEEKISO |
ISO セマンティクスを使用することを除いて、 WEEKと同じ |
1~53 |
MONTH |
年の月(数値) |
1~12 |
QUARTER |
年の四半期(数値) |
1~4 |
[1] WEEK_OF_YEAR_POLICY および/または WEEK_START セッションパラメーターに設定された値によって示される結果です。
ISO セマンティクスとパラメーターの詳細については、 カレンダーの週と平日 をご参照ください。
例¶
以下は、関数 YEAR
、 MONTH
、 DAY
、 DAYOFWEEK
、 DAYOFYEAR
、 QUARTER
の使用を示しています。
SELECT '2013-05-08T23: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 | |-------------------------+------+-----------------+-------+-----+--------------+-------------| | 2013-05-08 23:39:20.123 | 2013 | 2 | 5 | 8 | 8 | 128 | +-------------------------+------+-----------------+-------+-----+--------------+-------------+
以下は、関数 WEEK
、 WEEKISO
、 WEEKOFYEAR
、 YEAROFWEEK
、 YEAROFWEEKISO
の使用方法を示しています。セッションパラメーター WEEK_OF_YEAR_POLICY は、年の最初の週がその年の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日を含む年の最初の週であることを示すように設定されます。(例えば、2010年12月26日から2011年1月1日までの週は、2011年の最初の週ではなく2010年の最後の週と見なされます。2011年1月1日が含まれていますが、2011年は週の半分未満だからです)
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;SELECT '2016-01-02T23: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 | |-------------------------+-------------+-----------------| | 2016-01-02 23:39:20.123 | 7 | 6 | +-------------------------+-------------+-----------------+
以下は、関数 DAYOFWEEK
および DAYOFWEEKISO
の使用方法を示しています。セッションパラメーター WEEK_START は、週が月曜日に始まることを示すように設定されています。
ALTER SESSION SET WEEK_START = 0;SELECT '2016-01-02T23: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 | |-------------------------+-------------+-----------------| | 2016-01-02 23:39:20.123 | 6 | 6 | +-------------------------+-------------+-----------------+
その他の例については、 日付と時刻の値の操作 をご参照ください。
週関連の関数の詳細な例(DAYOFWEEK、 WEEK、 WEEKOFYEAR、 YEAROFWEEKなど)については、 カレンダーの週と平日 をご参照ください。