2013년 3월 20일 수요일

오라클 주민번호 체크


select '주민번호',
  translate('주민번호', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ') ,
  translate('주민번호', '0123456789'||'주민번호', '0123456789'),
 (case when
        MOD(11 -
            MOD(
                substr('주민번호',1,1) * 2 +
                substr('주민번호',2,1) * 3 +
                substr('주민번호',3,1) * 4 +
                substr('주민번호',4,1) * 5 +
                substr('주민번호',5,1) * 6 +
                substr('주민번호',6,1) * 7 +
                substr('주민번호',7,1) * 8 +
                substr('주민번호',8,1) * 9 +
                substr('주민번호',9,1) * 2 +
                substr('주민번호',10,1) * 3 +
                substr('주민번호',11,1) * 4 +
                substr('주민번호',12,1) * 5
            ,11)
          , 10)  = substr('주민번호',13,1)  
       then 'T'
       else 'F'
       end)
from duall

2013년 3월 18일 월요일

oracle 날짜 차이 계산


SELECT EMP_NO,
       FST_ENT_DT,
       MONTHS_BETWEEN(SYSDATE , TO_DATE(FST_ENT_DT,'yyyymmdd')) "개월차" ,
       TRUNC(MONTHS_BETWEEN(SYSDATE , TO_DATE(FST_ENT_DT,'yyyymmdd')) /12,0 ) "년" ,
       TRUNC(MOD(MONTHS_BETWEEN(SYSDATE , TO_DATE(FST_ENT_DT,'yyyymmdd')) /12,1 ) *12,0)  "월",
      ROUND(MOD(MOD(MONTHS_BETWEEN(SYSDATE , TO_DATE(FST_ENT_DT,'yyyymmdd')) /12,1 ) *12,1)*(365/12),0)  "일"
  FROM TBH_EMP
 WHERE EMP_NO = 'E20050107'