SELECT t.*
FROM (
SELECT '1-01' AS dt FROM dual UNION ALL
SELECT '6-05' AS dt FROM dual UNION ALL
SELECT '12-19' AS dt FROM dual
) t
WHERE dt = TO_CHAR(TO_DATE('2016-05','YYYY-MM'),'FMMM-YY')
;
NO Data Found 입니다.. ^^. 아래와 같이 조회해 보시면 2005년 6월은 '6-5' 로 표현됩니다.
SELECT TO_CHAR(TO_DATE('2005-06','YYYY-MM'),'FMMM-YY') FROM dual
SELECT ym
, LTRIM(TO_CHAR(TO_DATE(ym, 'yyyy-mm'), 'mm-yy'), '0') x1 --> 날짜 변환 함수 이용
, REGEXP_REPLACE(ym, '..(..)-0?(.+)', '\2-\1') x2 --> 정규식 함수 이용
FROM (SELECT '2006-05' ym FROM dual)
;
아! LTRIM 을 이용하여 제거하는 방법도 있었네요. 깜빡하고 있었네요.
제가 찾아낸 방법은 아래와 같네요. FM 을 두번 사용하게 되면 두번째는 기능을 원복하게 됩니다.
FM마스크를 이용하여 이러지러 사용해 보다가 알았는데 원리는 모르겠어요.
TO_CHAR(TO_DATE('2005-06','YYYY-MM'),'FMMM-FMYY')
아래 예제를 더 참고해 보세요. FM 에 여러번 사용하는 것에 대한 설명은 못 찾았네요. ㅡ_ㅡ;;
SELECT ym
, to_char(TO_DATE(ym, 'yyyy-mm-dd'),'DD-MM-YY') AS no_fm_str
, to_char(TO_DATE(ym, 'yyyy-mm-dd'),'FMDD-MM-YY') AS fm1_str
, to_char(TO_DATE(ym, 'yyyy-mm-dd'),'FMDD-FMMM-YY') AS fm2_str
, to_char(TO_DATE(ym, 'yyyy-mm-dd'),'FMDD-FMMM-FMYY') AS fm3_str
FROM (SELECT '2005-06-01' ym FROM dual)
| YM | NO_FM_STR | FM1_STR | FM2_STR | FM3_STR |
| 2005-06-01 | 01-06-05 | 1-6-5 | 1-06-05 | 1-06-5 |
새로운 걸 알았네요.
FM 사용은 알고 있었는데.
여러번 사용할 때의 효과는 새로 알게 되었네요.