반응형
[오라클] 달력 기준으로 매월 세째주 토요일 일자 쿼리로 구하는 방법
실무에서 달력의 날짜나 요일을 구해야 하는일들이 간혹 발생 합니다.
보통 달력테이블을 만들어 조회하는데 쿼리로 원하는 요일을 구할 수 있습니다.
방법은
매달 월의 1일에서 14일을 더하면 달력 상에서 항상 3주차가 나오게 됩니다.
14일을 더한 날짜의 요일이 월요일이라면 5일을 더해주어야 하고 화요일이라면 4일을 더해주어야 토요일 일자가 나옵니다.
요일을 구하는 함수는 TO_CHAR(날짜, 'D')이며 일요일 ~ 토요일까지 1~7 값을 반환합니다.
WITH TEMP_DATE AS (
SELECT TO_DATE(YYYY||MM, 'YYYYMM') YYYYMM
FROM (SELECT LPAD(LEVEL, 2, '0') MM FROM DUAL
CONNECT BY LEVEL <= 12)
, (SELECT TO_CHAR(LEVEL+2018) YYYY FROM DUAL
CONNECT BY LEVEL <= 1)
ORDER BY 1)
SELECT YYYYMM, YYYYMM + 14 + (7-TO_CHAR(YYYYMM, 'D')) "세째주 토요일"
FROM TEMP_DATE
위에 있는 쿼리를 사용하면 됩니다.
TEMP_DATE 를 정의하고 호출하면 됩니다. 이방법을 응용해서 2주차나 4주차에 적용해 볼수 있습니다.
반응형
'경험치바(Experience Opint Bar)' 카테고리의 다른 글
XPath [XML Path Language] 언어 간단 정리 (0) | 2018.09.10 |
---|---|
리눅스 서비스 등록 및 재부팅 시작 서비스 등록 (0) | 2018.09.08 |
log4j에서 e.printStackTrace() 를 log에 남기는 방법 (0) | 2018.09.07 |
이클립스 오픈 리소스(open resource) 검색 제외(search exception) 설정 방법 target 이미지 등 (0) | 2018.09.07 |
반응형 사이트 px 를 em rem 단위 변환 계산 (0) | 2018.09.03 |