개발/DB
Postgres / 달력뽑기
코인아님
2023. 12. 8. 20:31
일단 이번달의 달력을 뽑아보도록 하겠다
SELECT generate_series(
date_trunc('MONTH', NOW()::DATE),
date_trunc('MONTH', (NOW()::DATE + interval '1 MONTH')) - INTERVAL '1 DAY',
interval '1 DAY'
)::DATE AS monthly_date;
> 설명
generate_series('시작' , '끝', '증감')
자바의 for문이라고 생각하변 편함. 시작~끝까지 일정한 간격으로 증가시키거나 감소시킬 수 있다.
date_trunc('자를단위', '기준 날짜')
DATE_TRUNC('DAY', NOW())를 하면 오늘 날짜가 2023.12.08이기때문에 2023.12.08로 값이 나오게된다.
DATE_TRUNC('MONTH', NOW()) 를 하면 오늘 날짜가 2023.12.08이기때문에 2023.12로 값이 나오게된다.
때문에 DATE_TRUNC('MONTH', NOW()) 에서 2023.12까지 잘린 친구에 ::DATE로 형변환해주면 자동으로 '-01'이 붙어서 1일부터 시작시킬 수 있게 된다.
date_trunc('MONTH', (NOW()::DATE + interval '1 MONTH')) - INTERVAL '1 DAY'
은 이달의 마지막날을 구하는 방법이다. 간단하게 2023.12-01월에서 1달 더한 2023-01-01에서 -1DAY하면 당연히 이번달의 마지막 날이 나오게된다.
반응형