datetrunc()

날짜를 지정한 시간 단위의 구간 시작점으로 절삭하여 반환합니다.

문법

datetrunc(DATE, SPAN[, OFFSET])

매개변수

DATE
절삭할 날짜를 반환하는 표현식입니다.
SPAN
절삭 단위와 간격을 나타내는 문자열입니다. 숫자와 단위를 붙여 씁니다. 지원하는 단위는 다음과 같습니다.
단위설명
s
m
h
d
w
mon월 (1, 2, 3, 4, 6만 허용)
y연 (1만 허용)
OFFSET
(선택) 절삭 기준점을 이동시킬 오프셋을 나타내는 문자열입니다. SPAN과 같은 단위 형식을 사용합니다. 예를 들어 SPAN="1d", OFFSET="8h"이면 하루 단위 절삭 시 오전 8시를 기준으로 합니다.

설명

datetrunc() 함수는 DATE가 속한 시간 구간의 시작점을 반환합니다. 반환 타입은 날짜입니다.

SPAN에 1mon을 지정하면 해당 월의 1일 00:00:00으로 절삭합니다. 2mon, 3mon, 4mon, 6mon은 각각 2개월, 3개월, 4개월, 6개월 구간의 시작 월 1일로 절삭합니다. 1y를 지정하면 해당 연도의 1월 1일 00:00:00으로 절삭합니다. 1w를 지정하면 해당 주의 월요일 00:00:00으로 절삭합니다.

DATE가 null이거나 날짜 타입이 아닌 경우 null을 반환합니다. SPAN의 amount가 0인 경우 DATE를 그대로 반환합니다.

오류 코드

90640
인수 개수가 2개 미만인 경우 발생합니다.

사용 예

이 사용 예에서 조회하는 WEB_APACHE_SAMPLE 테이블을 준비하려면 쿼리 실습용 데이터를 참고하세요.

  1. 접근 로그 시각을 1시간 단위로 절삭합니다.

    table limit=5 WEB_APACHE_SAMPLE | eval result = datetrunc(_time, "1h")
    | fields _time, result
    
  2. 접근 로그 시각을 5분 단위로 절삭합니다.

    table limit=5 WEB_APACHE_SAMPLE | eval result = datetrunc(_time, "5m")
    | fields _time, result
    
  3. 1시간 단위로 절삭하여 시간별 요청 건수를 집계합니다.

    table WEB_APACHE_SAMPLE | eval hour = datetrunc(_time, "1h")
    | stats count by hour
    | # 시간별 요청 건수를 출력합니다.
    
  4. 오프셋을 지정하여 오전 8시 기준으로 업무일 단위 절삭합니다.

    table WEB_APACHE_SAMPLE | eval soc_day = datetrunc(_time, "1d", "8h")
    | stats count by soc_day
    | # 오전 8시 기준으로 업무일 단위 요청 건수를 출력합니다.
    
  5. NULL 입력

    json "{}" | eval result = datetrunc(null, "1h")
    | # result: null
    

호환성

datetrunc() 함수는 소나 4.0 이전 버전부터 제공되었습니다.