WebMethods 6.X 의 서비스가 실행될 때
파이프라인 정보를 기록하는 테이블은
WMSERVICE 이다. 해당 테이블을
열어보면 날짜에 관련된 컬럼이
AUDITTIMESTAMP 인데 우리가 흔히 보는 날짜 포맷이 아닌
1232097539700 와
같은 형태로 저장이 된다. 이걸 알기 쉬운 형태로 바꿀려면 아래와 같은 변환 작업을 하면 된다. (오라클일 경우)
select to_char((to_date('1970-01-01 02:00:00','yyyy-mm-dd hh24:mi:ss') +AUDITTIMESTAMP/86400000),'yyyy-mm-dd hh24:mi:ss')
그러면
1232097539700 와 같은 날짜의 형태가
2009-01-16 11:19:00 와 같은 우리가 알아보기 쉬운 형태로 변환이 된다.
좀더 설명을 붙이자면 테이블에 저장된 숫자를 86400000 로 나눈 값은 날짜(day)에 해당한다. 소숫점은 시간에
해당하는거고. 1970년 1월 1일 2시 0분 부터 이만큼의 시간이 지난 것이 우리가 알아보기 쉬운 TimeStamp 이다. 더
어려운가 ㅡㅡ;;;
<2011 / 04 / 08 내용 추가>
위의 역순으로 특정 날짜를 위와같은 포맷으로 변경 하기
(2011-03-15 07:46:48 포맷을 1300168008000 포맷으로 변경)
select (to_date('2011-03-15 07:46:48','yyyy-mm-dd hh24:mi:ss') - to_date('1970-01-01 02:00:00','yyyy-mm-dd hh24:mi:ss')) * 86400000 from dual select (sysdate - to_date('1970-01-01 02:00:00','yyyy-mm-dd hh24:mi:ss')) * 86400000 from dual
<2011 / 04 / 22 내용 추가>
다른분이 하신걸 보니 32400000 를 더해주는 부분이 있네 -_-;; 시간으로 보면 11시간인데....
TO_CHAR(to_date('1970/01/01','YYYY/MM/DD')+((di.checkinprocesstime+32400000)/(60*60*24*1000)),'YYYY-MM-DD HH24:MI:SS') checkin
<2011 / 05 / 05 내용 추가>
생각해보니 위에서 써둔건 2시 부터로 되어있고 아래쪽에 있는건 11시간을 더해줬으니, 2시부터가 시간을 재기 시작한 기준이고, 9시간의 차이는 우리나라 시간이 GMT+9 여서 그런듯