2014-10-30 7 views
0

ORACLE을 사용하여 NUMBER에서 CURRENT_TIMESTAMP 함수를 변환하는 방법은 무엇입니까? 다음 코드를 사용하여숫자에 대한 타임 스탬프

, 나는 시스템

SELECT SYS_EXTRACT_UTC(CURRENT_TIMESTAMP) FROM DUAL; 

내가 원하는 것은 유닉스 형식으로 대응하는 타임 스탬프를 생성하는 위의 코드의 결과를 사용하는 것입니다의 CURRENT_TIMESTAMP를 추출 할 수 있어요. 처음에 : 1) SELECT SYS_EXTRACT_UTC (CURRENT_TIMESTAMP) FROM DUAL; 나는이 결과가 나타납니다

-------------------------------------------------- 
| SYS_EXTRACT_UTC(CURRENT_TIMESTAMP)   | 
-------------------------------------------------- 
|  30-OTT-14 09:51:43,164232000    | 
-------------------------------------------------- 

2) 그리고로 변환 할 : 그게 가능

-------------------------------------------------- 
|    UNIXTIMESTAMP     | 
-------------------------------------------------- 
|     1414662703      | 
-------------------------------------------------- 

? 는

+2

본 적이 있습니까? http://stackoverflow.com/questions/12105691/convert-timestamp-datatype-into-unix-timestamp-oracle – Dmitry

+0

링크를 가져 주셔서 감사합니다 : D – corvallo

답변

3

당신이 두 개의 타임 스탬프의 차이는 간격을 (간격과 FMT)

추출물이

select trunc(
     extract(day from intvl) * 24 * 60 * 60 
     + extract(hour from intvl) * 60 * 60 
     + extract(minute from intvl) * 60 
     + extract(second from intvl) 
     ) 
from 
(select SYS_EXTRACT_UTC(CURRENT_TIMESTAMP) - to_timestamp('19700101', 'YYYYMMDD') intvl from dual); 

을 시도 할 수 있습니다보다 타임 스탬프와 함께 작동해야하는 경우는 날짜 시간을 추출 사전에 모두 감사합니다 구성 요소의 범위

TRUNC는 밀리 초를 자릅니다.

+0

그의 예에서'unixtimestamp' 값에 소수 자리가없는 곳에서 그는 분명히 타임 스탬프의 정밀도로 작업 할 필요는 없습니다. 그건 제쳐두고, 당신의 솔루션은 물론, 정확하고 좋은 것입니다. – nop77svk

+0

@ nop77svk 네, 맞습니다. 이 날짜는 세션의 시간대이므로 날짜 만 사용하면 충분하지만 current_date는 사용하지 않아도됩니다. 나는 OP가 UTC 시간이 필요하다는 것을 알고 있습니다. – Multisync

+0

@ nop77svk current_date 대신 CAST (SYS_EXTRACT_UTC (CURRENT_TIMESTAMP) DATE)가 더 정확합니다. – Multisync