CREATE OR REPLACE FUNCTION WEEK_NO (CDATE VARCHAR2) RETURN NUMBER AS
V_DATE VARCHAR2(08);
FDATE DATE;
DNUM NUMBER;
BEGIN
V_DATE:=CDATE;
--
SELECT DECODE(TO_CHAR(TO_DATE(SUBSTR(V_DATE,1,4)||'0101','YYYYMMDD'),'D'),
1,7,
2,6,
3,5,
4,4,
5,3,
6,2,
7,1)
+ TO_DATE(SUBSTR(V_DATE,1,4)||'0101','YYYYMMDD')
INTO FDATE
FROM DUAL;
--
SELECT TO_DATE(V_DATE,'YYYYMMDD') - FDATE
INTO DNUM
FROM DUAL;
--
IF DNUM<0 THEN
RETURN 1;
ELSE
RETURN TRUNC(DNUM/7) +2;
END IF;
END;
V_DATE VARCHAR2(08);
FDATE DATE;
DNUM NUMBER;
BEGIN
V_DATE:=CDATE;
--
SELECT DECODE(TO_CHAR(TO_DATE(SUBSTR(V_DATE,1,4)||'0101','YYYYMMDD'),'D'),
1,7,
2,6,
3,5,
4,4,
5,3,
6,2,
7,1)
+ TO_DATE(SUBSTR(V_DATE,1,4)||'0101','YYYYMMDD')
INTO FDATE
FROM DUAL;
--
SELECT TO_DATE(V_DATE,'YYYYMMDD') - FDATE
INTO DNUM
FROM DUAL;
--
IF DNUM<0 THEN
RETURN 1;
ELSE
RETURN TRUNC(DNUM/7) +2;
END IF;
END;
댓글 0
| 번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
|---|---|---|---|---|
| 14 | SELF JOIN | 운영자 | 2002.09.17 | 4625 |
| 13 | Outer Join | 운영자 | 2002.09.17 | 4138 |
| 12 | HINTS (출처-Oracle8.0 Tuning Guide) | 운영자 | 2002.09.17 | 3802 |
| 11 | 단일행 문자 함수 | 운영자 | 2002.09.17 | 4527 |
| 10 | 단일행 수치 함수 | 운영자 | 2002.09.17 | 4026 |
| 9 | NOT IN 의 함정 | 운영자 | 2002.09.17 | 3812 |
| 8 | DYNAMIC SQL 이란? (퍼온글 : 출처모름) | 운영자 | 2002.09.17 | 4801 |
| 7 | PL/SQL에서 ARRAY사용 예제 | 운영자 | 2002.09.17 | 4591 |
| » | 년중 몇번째 주간인지 알아내기(FUNCTION) - ORACLE이 제공하는 것과 다름 | 운영자 | 2002.09.17 | 5405 |
| 5 | SORT후 번호부여 | 운영자 | 2002.09.17 | 3813 |
| 4 | JOIN 과 UNION 의 선후관계 | 운영자 | 2002.09.17 | 6046 |
| 3 | 중복 DATA CHECK | 운영자 | 2002.09.17 | 3812 |
| 2 | crontab 에 오라클 환경변수를 인식시킬때 [1] | 원우석 | 2004.12.06 | 6195 |
| 1 | oracle proc 에서 stdarg.h파일사용하기위한 환경설정 | 원우석 | 2004.12.06 | 14249 |