SQL/Redshift

Redshift : Week truncate (주차별로 truncate하기, 일요일 시작 주차 truncate)

CosmosProject 2024. 7. 25. 21:18
728x90
반응형

 

 

 

어떤 날짜에 대해 해당 주차의 시작 날짜로 truncate을 하고 싶다면 크게 2가지 방법이 있습니다.

 

 

오늘 날짜가 2024-07-25 (목)이라고 가정하겠습니다.

 

 

1. date_trunc 함수 사용

date_turnc('week', current_date)
;



-- Result
2024-07-22

 

date_trunc() 함수는 월요일을 일주일의 시작으로 간주합니다.

오늘이 2024-07-25(목)이므로 같은 주의 월요일로 truncate을 합니다.

따라서 위 결과는 2024-07-22가 됩니다.

 

https://cosmosproject.tistory.com/170

 

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

Syntax date_trunc('datepart', date/timestamp) date_trunc 함수는 위처럼 사용할 수 있습니다. 주어진 date를 명시한 datepart까지만 남기고 그 이하는 모두 자른 후 timestamp를 반환합니다. select current_date; --> 2021-02-

cosmosproject.tistory.com

 

 

 

2. date_part 함수 사용

select  current_date - date_part('dow', current_date)::bigint
;



-- Result
2024-07-21

 

date_part 함수는 날짜의 특정 부분만을 추출해줍니다.

date_part('dow', ~)는 day of week의 약자로 무슨 요일인지를 숫자로 환산해서 나타내줍니다.

 

Sun = 0 / Mon = 1 / Tue = 2 / Wed = 3 / Thu = 4 / Fri = 5 / Sat = 6

 

각 요일별 숫자는 위와 같습니다.

 

current_date가 2024-07-25 (목) 이므로

date_part('dow', current_date)::bigint는 4를 return할겁니다.

 

current_date인 2024-07-25에서 4를 빼면 2024-07-21 (일)이 return됩니다.

 

이렇듯 일요일을 한 주의 시작으로 하여 truncate을 구현할 경우 date_part 함수를 사용할 수 있습니다.

 

 

https://cosmosproject.tistory.com/307

 

Redshift : date_part (특정 날짜 부분 추출하기, 요일 추출하기)

date_part 함수를 사용하면 날짜 데이터에서 특정 부분을 추출해낼 수 있습니다. date_part 함수의 syntax는 아래와 같습니다. date_part(part, date/timestamp) date/teimstamp 데이터에서 part에 명시된 부분을 return

cosmosproject.tistory.com

 

 

 

 

 

728x90
반응형