2010-09-29 8 views
12

मैं निम्न तालिका है:sqlplus में अब तक का युग कन्वर्ट/Oracle

SQL> select * from recording where CAPTUREID=14760457; 

CAPTUREID STARTDATE   ENDDATE    STATE ESTIMATEDENDTIME 
---------- ------------------- ------------------- ----- ---------------- 
    14760457 29/09/2010 08:50:01 29/09/2010 09:52:04  0 1285746720000 

मैं बहुत यकीन है कि यह तो कहा गया है कर रहा हूँ:

SQL> desc recording 
Name     Null? Type 
-------------------- -------- ------ 
CAPTUREID   NOT NULL NUMBER(9) 
STARTDATE   NOT NULL DATE 
ENDDATE      DATE 
STATE       NUMBER(1) 
ESTIMATEDENDTIME    NUMBER(13) 

यहाँ इस तालिका के लिए एक पंक्ति है कई बार पहले, लेकिन अब तक जो समाधान मिले हैं, वे वास्तव में काम नहीं करते हैं, इसलिए ... मैं अपने मूल युग फॉर्म से ESTIMATEDENDTIME को SQLPLUS में एक ही क्वेरी में DD/MM/YYY HH:MI:SS प्रारूप में कैसे परिवर्तित करूं?

धन्यवाद!

उत्तर

25

ओरेकल में, एक तिथि में एक्स जोड़ना आपको एक दिन X दिन बाद वापस कर देगा।

तो ESTIMATEDENDTIME मिलीसेकेंड युग के बाद से तो आप

DATE '1970-01-01' + (1/24/60/60/1000) * ESTIMATEDENDTIME 

और फिर TO_CHAR जिसके परिणामस्वरूप तिथि के सही स्वरूप को प्राप्त करने का उपयोग कर सकते है। उदाहरण के लिए:

SELECT 
    captureid 
, startdate 
, enddate 
, state 
, estimatedendtime 
, DATE '1970-01-01' + (1/24/60/60/1000) * estimatedendtime AS estimatedenddate 
FROM recording 
+0

अरे! यह उन अन्य समाधानों की तुलना में तेज़ और आसान है जो मैं कोशिश कर रहा था! धन्यवाद! – Oink

0
select ((timestamp_coloum_name - to_date('01-JAN-1970','DD-MON-YYYY')) * (86400)) from any_table; 
संबंधित मुद्दे