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 |