date_part 함수

적용 대상:검사 표시됨 예 Databricks SQL 검사 예 Databricks Runtime으로 표시됨

날짜, 타임스탬프 또는 간격의 일부를 추출합니다.

구문

date_part(fieldStr, expr)

인수

  • fieldStr: 리터럴입니다 STRING .
  • exprDATE: , TIMESTAMP또는 INTERVAL 식입니다.

반환

가 이'SECOND'fieldStr 입니다DECIMAL(8, 6). 다른 모든 경우에서는 입니다 INTEGER.

가 또는 TIMESTAMP인 경우 sourcefield 지원되는 값입니다DATE.

  • 'YEAR', 'Y', 'YEARS', 'YR', 'YRS': 연도 필드
  • 'YEAROFWEEK': datetime이 속하는 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주일은 월요일에 시작하는 것으로 간주되며, 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', , 'HRS''HR': 시간 필드(0 - 23)
  • 'MINUTE', 'M', 'MIN', , 'MINUTES''MINS': 분 필드(0 - 59)
  • 'SECOND', 'S', 'SEC', , 'SECONDS': 'SECS'소수 부분을 포함한 초 필드

가 인 경우 sourceINTERVALfield 지원되는 값(대/소문자를 구분하지 않음):

  • 'YEAR', 'Y', 'YEARS', , 'YRS''YR': 총 월 / 12
  • 'MONTH', 'MON', 'MONS', 'MONTHS': 총 월 % 12
  • 'DAY', 'D', 'DAYS': 간격의 일 부분
  • 'HOUR', 'H', 'HOURS', , 'HR': 'HRS'마이크로초에 포함된 시간
  • 'MINUTE', 'M', 'MIN', , 'MINUTES''MINS': 마이크로초에서 몇 시간이 소요된 후 남은 시간
  • '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');
 224

> 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