다음을 통해 공유


date_part 기능

적용 대상:예로 표시된 확인 Databricks SQL 예로 표시된 확인 Databricks Runtime

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

구문

date_part(fieldStr, expr)

인수

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

반품

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

sourceDATE 또는 TIMESTAMP일 때 지원되는 field의 values.

  • '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'초 필드(소수 부분 포함)

sourceINTERVAL일 때 field에서 지원되는 values (대/소문자 구분 없음):

  • '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');
 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