카테고리:

날짜 및 시간 함수

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

사용법 노트

함수 이름

입력 날짜/타임스탬프에서 추출된 날짜 부분

가능한 값

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

다음은 WEEK, WEEKISO, WEEKOFYEAR, YEAROFWEEK, YEAROFWEEKISO 함수의 사용법을 보여줍니다. 세션 매개 변수 WEEK_OF_YEAR_POLICY는 해당 연도의 첫 번째 주가 해당 연도의 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"
       ;
+-------------------------+------+----------+--------------+--------------+------------------+
| 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 |
+-------------------------+------+----------+--------------+--------------+------------------+
Copy

또한, 다음은 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;
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"
       ;
+-------------------------+------+----------+--------------+--------------+------------------+
| 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 |
+-------------------------+------+----------+--------------+--------------+------------------+
Copy

다음은 DAYOFWEEKDAYOFWEEKISO 함수의 사용법을 보여줍니다. 세션 매개 변수 WEEK_START는 해당 주가 일요일에 시작됨을 나타내도록 설정됩니다.

ALTER SESSION SET WEEK_START = 7;
Copy
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 |
+-------------------------+-------------+-----------------+
Copy

다음은 DAYOFWEEKDAYOFWEEKISO 함수의 사용법을 보여줍니다. 세션 매개 변수 WEEK_START는 해당 주가 월요일에 시작됨을 나타내도록 설정됩니다.

ALTER SESSION SET WEEK_START = 0;
Copy
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 |
+-------------------------+-------------+-----------------+
Copy

더 많은 예는 날짜 및 시간 값 작업하기 섹션을 참조하십시오.

주 관련 함수(DAYOFWEEK, WEEK, WEEKOFYEAR, YEAROFWEEK 등)에 대한 자세한 예는 달력상의 주 및 요일 을 참조하십시오.