이 문제를 풀기 위해서는 먼저, 한 주의 시작을 어느 요일부터로 할 것인가가 정의되어야한다.
여기서는 일요일부터 시작된다고 가정하겠다.
-- 오늘이 올해의 몇번째 주에 속하는가?
SELECT TO_CHAR (SYSDATE + 1, 'fmiw')
FROM DUAL
SELECT (TRUNC (SYSDATE, 'd') - TRUNC (TRUNC (SYSDATE, 'y'), 'd')) / 7 + 1
FROM DUAL
SELECT TO_CHAR (SYSDATE, 'ww')
- FLOOR ( ( TO_CHAR (SYSDATE, 'd')
- TO_CHAR (TRUNC (SYSDATE, 'year'), 'd')
)
/ 7
)
FROM DUAL
-- 오늘이 이번달의 몇번째 주에 속하는가?
SELECT TO_CHAR (SYSDATE + 1, 'fmiw')
- TO_CHAR (TRUNC (SYSDATE, 'mm') + 1, 'fmiw')
+ 1
FROM DUAL
SELECT (TRUNC (SYSDATE, 'd') - TRUNC (TRUNC (SYSDATE, 'mm'), 'd')) / 7 + 1
FROM DUAL
SELECT TO_CHAR (SYSDATE, 'w')
- FLOOR ( ( TO_CHAR (SYSDATE, 'd')
- TO_CHAR (TRUNC (SYSDATE, 'month'), 'd')
)
/ 7
)
FROM DUAL