ls_s_set_yymm에 '1302' 이런식으로 2013년02월의 '1302'이 스트링값으로 들어가있습니다.
이게 1301에서 +1 되어서 1302가 된건데요,
예를들어 1312가되면 +1하면 1313이 되어버려서 틀리게됩니다.
1401이 나와야되는거죠.
프로그램으로 처리되면 쉽게하겠는데, 트리거로 간단하게 기능추가를 할려니 막히는부분이 있네요.
아래가 뒤 2자리를 비교해서 '13'보다 크거나 같으면 앞두자리에 +1을 하고 뒤 두리리에 '01'을 해서 붙일려고하는 부분입니다.
근데, 문자형이다보니 +1을할려면 떼어서 수치형으로 변환해서 증가해서 문자형으로 바꿔서 '01'을 뒤에 붙여서 다시 ls_s_set_yymm에 넣어줘야되는데
그부분을 모르겠습니다. 좀 도와주세요. T.T;
-- 증가된 뒷 두자리(월)이 13이면 앞두자리(년도의뒤2자리)를 1증가하고 뒷두자리를 '01'로 수정한다.
if substring(ls_s_set_yymm,3,2)>='13' then
end if;
혹시
if substring(ls_s_set_yymm,3,2)>='13' then
ls_s_set_yymm = (substring(ls_s_set_yymm,1,2)::integer +1)::character + '01' ;
end if;
이렇게하면 정상적으로 될가요?
테스트를 못해보니 12월지나고 정상 작동할지 걱정입니다. |