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
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
728x90
반응형