적용 대상:
Databricks SQL
Databricks Runtime
날짜, 타임스탬프 또는 간격의 일부를 추출합니다.
구문
date_part(fieldStr, expr)
논쟁
-
fieldStr:STRING리터럴. -
expr: ADATE,TIMESTAMP또는INTERVAL식입니다.
반품
fieldStr가 'SECOND'이면 DECIMAL(8, 6)입니다.
다른 모든 경우에서는 INTEGER입니다.
field이 source 또는 DATE일 때 지원되는 TIMESTAMP의 값은 다음과 같습니다.
-
'YEAR','Y','YEARS','YR''YRS': 연도 필드 -
'YEAROFWEEK': 날짜/시간이 속하는 ISO 8601 주 번호 매기기 연도입니다. 예를 들어 2005-01-02는 2004년 53번째 주에 속하므로 결과는 2004입니다. -
'QUARTER','QTR': datetime이 속하는 연도의 분기(1-4) -
'MONTH','MON','MONS''MONTHS': 월 필드(1 - 12) -
'WEEK','W''WEEKS': ISO 8601 주 기반 연도의 수입니다. 한 주는 월요일에 시작하는 것으로 간주되고 1주는 3일보다 긴 첫 번째 주입니다. ISO 주 번호 매기기 시스템에서 1월 초 날짜는 전년도의 52번째 또는 53번째 주에 속할 수 있고, 12월 말 날짜는 다음해 첫 번째 주에 속할 수 있습니다. 예를 들어 2005-01-02는 2004년 53번째 주에 속하는 반면, 2012-12-31은 2013년 첫 번째 주에 속합니다. -
'DAY','D''DAYS': 월 필드의 날짜(1 - 31) -
'DAYOFWEEK','DOW': 날짜/시간의 요일을 일요일(1)에서 토요일(7)까지 나타냅니다. -
'DAYOFWEEK_ISO','DOW_ISO': 월요일(1)부터 일요일(7)까지 날짜 및 시간의 ISO 8601 기반 요일 -
'DOY': 연중 날짜(1 - 365/366) -
'HOUR','H','HOURS','HR','HRS': 시간 필드(0 - 23) -
'MINUTE','M','MIN','MINS','MINUTES': 분 필드(0 - 59) -
'SECOND','S','SEC','SECONDS':'SECS'초 필드(소수 부분 포함)
field가 source일 때 지원되는 INTERVAL 값은 대소문자를 구분하지 않습니다.
-
'YEAR','Y','YEARS','YR''YRS': 총 월 / 12 -
'MONTH','MON','MONS''MONTHS': 총 월 % 12 -
'DAY','D''DAYS': 기간의 일수 부분 -
'HOUR','H','HOURS','HR''HRS': 마이크로초에 포함된 시간 -
'MINUTE','M','MIN','MINS''MINUTES': 마이크로초에서 시간을 빼고 남은 시간을 분 단위로 계산하기 -
'SECOND','S','SEC','SECONDS''SECS': 마이크로초에서 시간과 분을 제외하고 남은 초(분수)가 얼마인가요?
이 date_part 함수는 SQL 표준 추출 함수의 동의어입니다.
예를 들어 date_part('year', CURRENT_DATE) 다음과 같습니다. extract(YEAR FROM CURRENT_DATE)
예제
> SELECT date_part('YEAR', TIMESTAMP'2019-08-12 01:00:00.123456');
2019
> SELECT date_part('Week', TIMESTAMP'2019-08-12 01:00:00.123456');
33
> SELECT date_part('day', DATE'2019-08-12');
12
> SELECT date_part('SECONDS', TIMESTAMP'2019-10-01 00:00:01.000001');
1.000001
> SELECT date_part('Months', INTERVAL '2-11' YEAR TO MONTH);
11
> SELECT date_part('seconds', INTERVAL '5:00:30.001' HOUR TO SECOND);
30.001000