DATETRUNC

DATETRUNC

DATETRUNC 함수는 (Presto) SQL 호환 날짜 절단 함수로, Presto의 date_trunc 함수와 동등해요.

출처: 문서

본문

값을 지정한 시간대에서 특정 단위로 버킷화된, UTC 에포크 이후 초 단위의 지정한 출력 세밀도로 변환해요.

시그니처 (Signature)

DATETRUNC(unit, timeValue)

DATETRUNC(unit, timeValue, inputTimeUnitStr)

DATETRUNC(unit, timeValue, inputTimeUnitStr, timeZone)

DATETRUNC(unit, timeValue, inputTimeUnitStr, timeZone, outputTimeUnitStr)

unit은 다음 값을 지원해요:

  • millisecond
  • second
  • minute
  • hour
  • day
  • week
  • month
  • quarter
  • year

inputTimeUnitStr과 outputTimeUnitStr은 다음 값을 지원해요:

  • NANOSECONDS
  • MICROSECONDS
  • MILLISECONDS
  • SECONDS
  • MINUTES
  • HOURS
  • DAYS

사용 예시 (Usage Examples)

WEEK(주는 월요일 UTC 자정에 시작)에서 밀리초 단위 에포크를 절단:

select dateTrunc('week', 1639480981746) AS ts
FROM ignoreMe

또는

select dateTrunc('week', 1639480981746, 'MILLISECONDS') AS ts
FROM ignoreMe
ts
1639353600000

UTC 시간대에서 WEEK(주는 월요일 UTC 자정에 시작)에서 밀리초 단위 에포크를 절단하고, UTC 시간대에서 에포크 초 단위 결과를 반환:

select dateTrunc(
  'week', 
  1639480981746, 
  'MILLISECONDS', 
  'UTC', 
  'SECONDS'
) AS ts
FROM ignoreMe
ts
1639353600

CET 시간대에서 WEEK(주는 월요일 UTC 자정에 시작)에서 밀리초 단위 에포크를 절단하고, UTC 시간대에서 에포크 초 단위 결과를 반환:

select dateTrunc(
  'week', 
  1639480981746, 
  'MILLISECONDS', 
  'CET', 
  'SECONDS'
) AS ts
FROM ignoreMe
ts
1639350000

로스앤젤레스 시간대에서 QUARTER(분기는 로스앤젤레스 시간대 기준 1월 1일, 4월 1일, 7월 1일, 10월 1일에 시작)에서 밀리초 단위 에포크를 절단하고, 에포크 이후 시 단위 결과를 반환:

select dateTrunc(
  'quarter', 
  1639480981746, 
  'MILLISECONDS', 
  'America/Los_Angeles', 
  'HOURS'
) AS ts
FROM ignoreMe
ts
453631

더 알아보기 (Learn more)