DATE_PART 스칼라 함수
DATE_PART 함수는 인수에 기반하여 날짜 및 시간의 부분을 리턴합니다. 날짜, 시간, 시간소인 및 지속기간 값에서 지정되는 서브필드를 추출합니다.
스키마는 SYSIBM입니다.
- format-string
date-expression에서 추출되는 날짜 및 시간 단위를 표시하는 표현식입니다. 255바이트 이하인 실제 길이로 내장 문자열 데이터 유형을 리턴하는 표현식입니다. format-string의 format 요소는 datetime-expression을 자르는 방식을 지정합니다. 앞뒤 공백이 문자열에서 제거되고, 결과 서브스트링이 datetime-expression의 유형에 대한 올바른 형식 요소여야 합니다(SQLSTATE 22007). 표 1 은 format-string에 대해 허용 가능한 값을 나열합니다.
- datetime 표현식
- format-string에 지정된 단위를 추출하는 날짜 시간 값을 지정하는 표현식입니다. 표현식은 DATE, TIME, TIMESTAMP, 날짜 기간, 시간 지속 기간 또는 시간소인 지속 기간인 값을 리턴해야 합니다.
| format-string | 설명 |
|---|---|
| EPOCH | 1970-01-01 00:00:00.00 이후
시간(초)입니다. 값은
양수 또는 음수일 수 있습니다. DATE, TIME 및 TIMESTAMP의 경우에 유효합니다. |
| MILLENNIUM/MILLENNIUMS | 1000년입니다. 예를 들어, 2는 2000년 1월 1일과
2999년 12월 31일 사이의 날짜를 표시합니다. DATE, TIMESTAMP, 날짜 기간 및 시간소인 지속 기간의 경우에 유효합니다. |
| CENTURY/CENTURIES | 연도로 표시된 전체 100년 기간
수입니다. 예를 들어, 20은 2000년 1월 1일과 2099년 12월 31일
사이의 날짜를 표시합니다. DATE, TIMESTAMP, 날짜 기간 및 시간소인 지속 기간의 경우에 유효합니다. |
| DECADE/DECADES | 연도로 표시된 전체 10년 기간
수입니다. 예를 들어, 201은 2010년 1월 1일과 2019년 12월 31일
사이의 날짜를 표시합니다. DATE, TIMESTAMP, 날짜 기간 및 시간소인 지속 기간의 경우에 유효합니다. |
| YEAR/YEARS | 연도입니다(예: 2015). DATE, TIMESTAMP, 날짜 기간, 시간소인 지속 기간의 경우에 유효합니다. |
| QUARTER | 지정된 날이 있는
연도의 분기(1 - 4)입니다. DATE, TIMESTAMP, 날짜 기간 및 시간소인 지속 기간의 경우에 유효합니다. |
| MONTH/MONTHS | 해당 연도의 월 수(1 - 12)입니다. DATE, TIMESTAMP, 날짜 기간 및 시간소인 지속 기간의 경우에 유효합니다. |
| WEEK | 지정된 날이 있는 연도의 주 수(1 - 53)입니다. 값은 월요일에 시작하는 주의 ISO-8601 정의를 사용하고 일부 연도에는 53주가 있을 수 있고 가끔 1월의 처음 며칠에는 이전 연도의 52번째 또는 53번째 주의 일부로 포함될 수 있습니다. DATE 및 TIMESTAMP의 경우에 유효합니다. |
| DAY/DAYS | 월의 일(1 - 31)입니다. DATE, TIMESTAMP, 날짜 기간 및 시간소인 지속 기간의 경우에 유효합니다. |
| DOW | 요일이며 1(일요일) - 7(토요일)입니다. DATE 및 TIMESTAMP의 경우에 유효합니다. |
| DOY | 년의 일(1 - 366)입니다. DATE 및 TIMESTAMP의 경우에 유효합니다. |
| HOUR/HOURS | 하루의 시간(0 - 23)입니다. TIME, TIMESTAMP, 시간 지속 기간 및 시간소인 지속 기간의 경우에 유효합니다. |
| MINUTE/MINUTES | 시간의 분(0 - 59)입니다. TIME, TIMESTAMP, 시간 지속 기간 및 시간소인 지속 기간의 경우에 유효합니다. |
| SECOND/SECONDS | 분의 초이며 소수 부분은 포함하지 않습니다(0 - 59). TIME, TIMESTAMP, 시간 지속 기간 및 시간소인 지속 기간의 경우에 유효합니다. |
| MILLISECOND/MILLISECONDS | 분의 초이며 1/1000초까지의 소수 부분에 1000을 곱한 값을 포함합니다(0 - 59999). TIMESTAMP 및 시간소인 지속 기간의 경우에 유효합니다. |
| MICROSECOND/MICROSECONDS | 분의 초이며 백만분의 1초까지의 소수 부분에 1000000을 곱한 값을 포함합니다(0 - 59999999). TIMESTAMP 및 시간소인 지속 기간의 경우에 유효합니다. |
이 함수 결과의 데이터 유형은 BIGINT입니다. 인수가 널(NULL)일 수 있는 경우, 결과는 널(NULL)일 수 있습니다. 인수가 널(NULL)인 경우, 결과는 널(NULL) 값입니다.
예:
- 예 1: 날짜 값에서 일 부분을 추출합니다.
values DATE_PART('DAY', DATE('2007-02-18')); Result: 18 - 예 2: 날짜 기간에서 연도 부분을 추출합니다.
values DATE_PART('YEAR', cast(20130710 as decimal(8,0))); Result: 2013 - 예 3: 시간 지속 기간에서 시간 부분을 추출합니다.
values DATE_PART('HOUR', cast(075559 as decimal(6,0))); Result: 7
