[인터돌™] 공부 해보자!! 열심히~~~

반응형
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 여서 그런듯

이 글을 공유합시다

facebook twitter googleplus kakaoTalk kakaostory naver band