달나라 노트

Redshift : date_trunc (지정한 날짜 단위 기준으로 날짜 자르기) 본문

SQL/Redshift

Redshift : date_trunc (지정한 날짜 단위 기준으로 날짜 자르기)

CosmosProject 2021. 2. 18. 13:23
728x90
반응형

 

 

 

Syntax

date_trunc('datepart', date/timestamp)

date_trunc 함수는 위처럼 사용할 수 있습니다.

주어진 date를 명시한 datepart까지만 남기고 그 이하는 모두 자른 후 timestamp를 반환합니다.

 

 

select current_date; --> 2021-02-18
select date_trunc('year', current_date); -->2021-01-01 00:00:00.000000
select date_trunc('month', current_date); -->2021-02-01 00:00:00.000000
select date_trunc('week', current_date); -->2021-02-15 00:00:00.000000
select date_trunc('day', current_date); -->2021-02-18 00:00:00.000000

위 예시를 봅시다.

오늘 날짜는 2021-02-18입니다.

date_trunc에 year를 전달하면 오늘 날짜를 연도 정보만 남기고 나머지는 모두 1월, 1일 00시로 잘라서 반환합니다.

month는 년, 월까지만 현재 날짜 정보를 남기고 일, 시간은 모두 잘라서 반환합니다.

week는 주단위로 자르게됩니다. 2021-02-18은 목요일인데 이 주의 시작인 2021-02-15가 반환됩니다.

day는 일 까지만 남기고 시간은 모두 잘라냅니다.

 

 

 

 

 

SELECT  DATE_TRUNC('month', '2020-03-31 12:34:56'::timestamp),  --> 2020-03-01 00:00:00
        DATE_TRUNC('day', '2020-03-31 12:34:56'::timestamp),    --> 2020-03-31 00:00:00
        DATE_TRUNC('hour', '2020-03-31 12:34:56'::timestamp),   --> 2020-03-31 12:00:00
        DATE_TRUNC('minute', '2020-03-31 12:34:56'::timestamp)  --> 2020-03-31 12:34:00

 

- 참고
'2020-03-31 12:34:56' 이것은 사실 따옴표로 감싸져있기 때문에 텍스트입니다.
따라서 이 텍스트를 timestamp type으로 바꿔주기 위해 콜론 2개를 이용해서 timestamp로 type 변환을 해준 것입니다.

 

 

 

 

 

 

728x90
반응형
Comments