이달의 마지막날이 몇주차 인지 알아보는 쿼리 0 2 2,322

by 파랑비 [2011.10.14 12:18:31]


MS-SQL에서는
datepart(week, DATEADD(DAY, -1, DATEADD(MONTH , 1 , ('2011' + '-' + '10' +'-'+'01'))))

이렇게 사용했는데

오라클에선 어떻게 사용해야 될지 모르겟습니다.

TO_CHAR(ADD_MONTHS(TO_DATE(v_prod_year || '-' || iv_prod_month || '-' || '01' ,'YYYY-MM-DD'),1)-1 ,'d') - TO_CHAR(v_date ,'d') + 1 ;

이렇게 바꿨더니

ORA-06502: PL/SQL: 수치 또는 값 오류: 문자를 숫자로 변환하는데 오류입니다

라고 오류가 뜨네요 ㅠㅠ

도움좀 부탁드립니다.

by 마농 [2011.10.14 13:19:48]
일단 마지막 일자는 Last_Day 로 구하시면 됩니다.
주차 개념은 애매모호한 것입니다.
주차는 개념정리부터 확실히 하신후 원하시는 형태로 만들어 사용하셔야 합니다.

SELECT dt
, TO_CHAR(dt, 'd')
, TO_CHAR(dt, 'dy')
, TO_CHAR(dt, 'day')
, TO_CHAR(dt, 'w') -- 매월 1일부터 7일까지가 1주차
, TO_CHAR(dt, 'ww') -- 매년 1월1일부터 1월7일까지가 1주차
, TO_CHAR(dt, 'iw') -- 월요일 기준 년간 주차(1월1일이 월~목이면 1월1일이 1주차이지만 아니면 전년도 53주차가 됨)
FROM
(
SELECT LAST_DAY(TO_DATE(v_prod_year || iv_prod_month, 'yyyymm')) dt
FROM (SELECT '2011' v_prod_year, '10' iv_prod_month FROM dual)
)
;

by 파랑비 [2011.10.14 14:54:52]
마농님 감사합니다^^ 도움이 많이 됬어요^^
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입