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 이전 버전부터 제공되었습니다.