아래 sql이해가 안가서 질문을 합니다. 0 5 5,071

by 손님 TIMESTAMP 타임스템프 [2008.11.19 23:29:38]


안녕하세요.

sql에서 왜 TO_DATE('19700101','yyyymmdd')를 더해주는지 이해가 가지를 않네요?

숫자형식으로된거는 아래처럼 해줘야지 날짜형식으로 변환이 가능한가요?

SELECT TO_CHAR(dt,'yyyy-mm-dd hh24:mi:ss.') || milli_sec
FROM
(
SELECT s_dt
, TO_DATE('19700101','yyyymmdd') + s_dt/1000/60/60/24 dt
, RPAD(MOD(s_dt,1000),6,'0') milli_sec
FROM (SELECT 1226982745289 s_dt FROM dual)
)

by 마농 [2008.11.20 08:51:11]
1226982745289 이란 숫자 자체가 1970년1월1일을 기준으로 해서 만들어진 숫자이기 때문입니다.

by 마농 [2008.11.20 08:55:01]
더 좋은 방법도 있을것 같긴 한데 timestamp에 대한 지식이 부족해 아직 해법을 찾지는 못했네요.

by madcat [2008.11.20 10:31:59]
마농님 말씀을 보고 timestamp를 찾아봤습니다.
SELECT TO_TIMESTAMP('19700101') + NUMTODSINTERVAL(1226982745.289, 'SECOND') TS
FROM DUAL

by 마농 [2008.11.20 10:37:52]
오! 굿 샷~
좀 더 검색해 볼걸..ㅋㅋ 검색능력 부족 ^-^a

by 왕희복 [2008.12.04 18:21:29]
대단하삼 ㅋㅋㅋ
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입