[ 주(Week)구하기 ] : ① ~ ⑤까지 차례대로 해본다
① 요일번호(1:일요일~7:토요일)
SELECT TO_NUMBER(TO_CHAR(TO_DATE(ATTN_DATE,'YYYYMMDD'),'D'))
FROM EMPLOYEE_ATTEND
WHERE ATTN_DATE LIKE '200612%'
AND SNO='76990101'
② 날짜+7
SELECT TO_NUMBER(TO_CHAR(TO_DATE(ATTN_DATE,'YYYYMMDD'),'DD'))+7
FROM EMPLOYEE_ATTEND
WHERE ATTN_DATE LIKE '200612%'
AND SNO='76990101'
③ (날짜+7)-요일번호
SELECT TO_NUMBER(TO_CHAR(TO_DATE(ATTN_DATE,'YYYYMMDD'),'DD'))+7-TO_NUMBER(TO_CHAR(TO_DATE(ATTN_DATE,'YYYYMMDD'),'D'))
FROM EMPLOYEE_ATTEND
WHERE ATTN_DATE LIKE '200612%'
AND SNO='76990101'
④ ((날짜+7)-요일번호)/7
SELECT (TO_NUMBER(TO_CHAR(TO_DATE(ATTN_DATE,'YYYYMMDD'),'DD'))+7-TO_NUMBER(TO_CHAR(TO_DATE(ATTN_DATE,'YYYYMMDD'),'D')))/7
FROM EMPLOYEE_ATTEND
WHERE ATTN_DATE LIKE '200612%'
AND SNO='76990101'
⑤ TRUNC(((날짜+7)-요일번호)/7)
SELECT TRUNC((TO_NUMBER(TO_CHAR(TO_DATE(ATTN_DATE,'YYYYMMDD'),'DD'))+7-TO_NUMBER(TO_CHAR(TO_DATE(ATTN_DATE,'YYYYMMDD'),'D')))/7)
FROM EMPLOYEE_ATTEND
WHERE ATTN_DATE LIKE '200612%'
AND SNO='76990101'
→ 해당 날짜가 몇째주인지 반환(첫째주:0~)
'Oracle' 카테고리의 다른 글
Oracle DB에서 SQL 쿼리로 달력 만들기 (0) | 2020.09.25 |
---|---|
Oracle 무료 데이터베이스 Oracle Xe 2020년 기준 (0) | 2020.08.12 |
Oracle Instant Client 설치 아무리 해도 안될 때 (0) | 2019.10.03 |
Oracle to MySQL Migration (0) | 2018.12.28 |
Oracle and MySQL Compared (0) | 2018.12.28 |