당신은 월에 속한 주차를 구해야한다.
이때 고객사에선 대금결제일이 목요일이라 목요일이 속한 월의 주를 기준으로 주차를 정했으면 좋겠다고 한다.
한 주 단위는 월요일부터 시작 일요일까지다
위 규칙에 따라 1월30일은 2월 1주차이다.
1월29일은 2월 4주차이다.
SELECT TO_DATE(:YYYYMMDD, 'YYYYMMDD' ) /*바인딩변수 받는곳*/ A
, TO_DATE(:YYYYMMDD, 'YYYYMMDD' )-1 B
, TRUNC(TO_DATE(:YYYYMMDD, 'YYYYMMDD' )-1,'WW') C
, TRUNC(TO_DATE(:YYYYMMDD, 'YYYYMMDD' )-1,'WW')+4 /*목요일보정*/ D
, TO_CHAR(TRUNC(TO_DATE(:YYYYMMDD, 'YYYYMMDD' )-1,'WW')+4,'W')||'주차' E
FROM DUAL;
다른 달 검증
4월1일, 4월 2일은 5주차가 나와야한다. 4월 3일부터 1주차가 나와야한다.
TRUNC나 TO_CHAR로 날짜를 다루는 것은 굉장히 중요하다. (ROUND도 날짜를 다룰 수 있는데 거의 안씀)
주차를 구하는 것도 별것 아닌 것처럼 보이는데 막상해보면 막힐 수 있다.
날짜를 다루는데 도움되는 이전 포스트로 마무리!
https://rkwhr0010.tistory.com/8
'개발 > 오라클 SQL' 카테고리의 다른 글
WINDOW함수와 DISTINCT조합 (0) | 2023.01.19 |
---|---|
집계 함수 사용 시 주의사항 (0) | 2023.01.15 |
컬럼 <=> 행 변환 (0) | 2023.01.13 |
숫자 함수 응용 (0) | 2023.01.10 |
자주 쓰는 함수 모음 (1) | 2023.01.07 |