YEAR* / DAY* / WEEK* / MONTH / QUARTER
YEAR* / DAY* / WEEK* / MONTH / QUARTER
날짜 또는 타임스탬프에서 해당하는 날짜 부분을 추출해요.
이 함수들은 동등한 날짜 부분과 함께 DATE_PART(또는 EXTRACT) 함수를 사용하는 것에 대한 대안이에요(Supported date and time parts 참고).
출처: Snowflake SQL Reference - YEAR* / DAY* / WEEK* / MONTH / QUARTER
본문
구문
YEAR( date_interval_or_timestamp_expr )
YEAROFWEEK( date_or_timestamp_expr )
YEAROFWEEKISO( date_or_timestamp_expr )
DAY( date_interval_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_interval_or_timestamp_expr )
QUARTER( date_or_timestamp_expr )
인자
date_or_timestamp_expr
날짜 또는 타임스탬프, 또는 날짜나 타임스탬프로 평가될 수 있는 표현식이에요.
date_interval_or_timestamp_expr
날짜, 구간(interval) 또는 타임스탬프, 또는 날짜·구간·타임스탬프로 평가될 수 있는 표현식이에요.
구간 값이 함수에 전달되면 YEAR와 MONTH 함수는 year-month 구간 또는 year-month 구간으로 평가될 수 있는 표현식을 지원해요. DAY 함수는 day-time 구간 또는 day-time 구간으로 평가될 수 있는 표현식을 지원해요.
반환 값
이 함수는 NUMBER 타입의 값을 반환해요.
사용 시 유의사항
| Function name | Date part extracted from input date or timestamp | Possible values |
|---|---|---|
| YEAR | Year | Any valid year (for example, 2025) |
| YEAROFWEEK [1] | Year that the extracted week belongs to | Any valid year (for example, 2025) |
| YEAROFWEEKISO | Year that the extracted week belongs to using ISO semantics | Any valid year (for example, 2025) |
| DAY , DAYOFMONTH | Day (number) of the month | 1 to 31 |
| DAYOFWEEK [1] | Day (number) of the week dictated by session parameters | 0 to 7 |
| DAYOFWEEKISO | Day (number) of the week using ISO semantics | 1 to 7 |
| DAYOFYEAR | Day (number) of the year | 1 to 366 |
| WEEK , WEEKOFYEAR [1] | Week (number) of the year | 1 to 54 |
| WEEKISO | Week (number) of the year using ISO semantics | 1 to 53 |
| MONTH | Month (number) of the year | 1 to 12 |
| QUARTER | Quarter (number) of the year | 1 to 4 |
[1] WEEK_OF_YEAR_POLICY 및/또는 WEEK_START 세션 파라미터에 설정된 값에 의해 결과가 결정돼요.
ISO 의미론과 파라미터에 대한 자세한 내용은 Calendar weeks and weekdays를 참고하세요.
예시
다음 예시는 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일을 포함하는 주예요.
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년의 첫 번째 주가 아니라 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을 반환해요. DAYOFWEEKISO 함수는 ISO 의미론에서 주의 첫 번째 날이 월요일이므로 6을 반환해요. ISO 의미론과 WEEK_START 파라미터에 대한 자세한 내용은 Calendar weeks and weekdays를 참고하세요.
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 |
+-------------------------+-------------+-----------------+
더 많은 예시는 Working with date and time values를 참고하세요.
주 관련 함수(DAYOFWEEK, WEEK, WEEKOFYEAR, YEAROFWEEK 등)의 더 자세한 예시는 Calendar weeks and weekdays를 참고하세요.
더 알아보기 (Learn more)
- DATE_PART / EXTRACT — 날짜 부분 추출
- HOUR / MINUTE / SECOND — 시/분/초