datepart()
날짜에서 지정한 날짜 구성요소를 추출하여 정수로 반환합니다.
문법
datepart(DATE, DATEPART)
매개변수
DATE- 날짜를 반환하는 표현식입니다.
DATEPART- 추출할 날짜 구성요소를 나타내는 상수 문자열입니다. 지원하는 값은 다음과 같습니다.
| 유형 지시자 | 반환 타입 | 설명 | 예시 값 |
|---|---|---|---|
century | 32비트 정수 | 세기 | 21 |
day | 32비트 정수 | 날짜 (1~31) | 12 |
decade | 32비트 정수 | 연도를 10으로 나눈 몫 | 201 |
dow | 32비트 정수 | 요일, 일요일(0)~토요일(6) | 1 |
doy | 32비트 정수 | 해당 연도에서 몇 번째 날인지 | 163 |
epoch | 64비트 정수 | 1970년 1월 1일부터 경과한 초 | 1497269156 |
hour | 32비트 정수 | 24시간 기준 시 (0~23) | 21 |
isodow | 32비트 정수 | ISO 8601 기준 요일, 월요일(1)~일요일(7) | 1 |
isoyear | 32비트 정수 | ISO 8601 기준 연도 (해당 연도의 첫 목요일을 포함하는 주의 연도) | 2017 |
microseconds | 32비트 정수 | 현재 분 내에서 초와 마이크로초를 합산한 값 (밀리초 × 1000) | 56371000 |
millennium | 32비트 정수 | 밀레니엄 (천 년 단위) | 3 |
milliseconds | 32비트 정수 | 현재 분 내에서 초와 밀리초를 합산한 값 | 56371 |
min, minute | 32비트 정수 | 분 (0~59) | 5 |
mon, month | 32비트 정수 | 월 (1~12) | 6 |
msec | 32비트 정수 | 현재 초 내에서의 밀리초 (milliseconds % 1000) | 377 |
quarter | 32비트 정수 | 분기 (1~4) | 2 |
sec, second | 32비트 정수 | 초 (0~59) | 56 |
timezone | 32비트 정수 | UTC 기준 시간대 오프셋 (초 단위) | 32400 |
timezone_hour | 32비트 정수 | UTC 기준 시간대 오프셋 (시 단위) | 9 |
timezone_minute | 32비트 정수 | UTC 기준 시간대 오프셋에서 시를 제외한 분 | 0 |
week | 32비트 정수 | ISO 8601 기준 연도 내 주 번호 | 24 |
year | 32비트 정수 | 연도 | 2017 |
설명
datepart() 함수는 DATE에서 DATEPART로 지정한 구성요소를 추출합니다. epoch를 지정하면 64비트 정수를 반환하고, 그 외에는 32비트 정수를 반환합니다.
DATE가 null이거나 날짜 타입이 아닌 경우 null을 반환합니다.
오류 코드
90880- DATEPART가 null이거나 문자열이 아닌 경우 발생합니다.
90881- DATEPART 값이 유효하지 않은 경우 발생합니다.
type파라미터에 잘못된 유형 지시자가 포함됩니다.
사용 예
이 사용 예에서 조회하는 WEB_APACHE_SAMPLE 테이블을 준비하려면 쿼리 실습용 데이터를 참고하세요.
-
접근 로그 시각에서 시(hour)를 추출합니다.
table limit=5 WEB_APACHE_SAMPLE | eval result = datepart(_time, "hour") | fields _time, result -
접근 로그 시각에서 월을 추출합니다.
table limit=5 WEB_APACHE_SAMPLE | eval result = datepart(_time, "mon") | fields _time, result -
접근 로그 시각의 Unix epoch 값을 추출합니다.
table limit=5 WEB_APACHE_SAMPLE | eval result = datepart(_time, "epoch") | fields _time, result -
NULL 입력
json "{}" | eval result = datepart(null, "year") | # result: null
호환성
datepart() 함수는 소나 4.0 이전 버전부터 제공되었습니다.