जब आप TIMESTAMP
. प्रकार के दो चर घटाते हैं , आपको एक INTERVAL DAY TO SECOND
. मिलता है जिसमें प्लेटफॉर्म के आधार पर कई मिलीसेकंड और/या माइक्रोसेकंड शामिल हैं। यदि डेटाबेस विंडोज़ पर चल रहा है, systimestamp
आम तौर पर मिलीसेकंड होगा। यदि डेटाबेस यूनिक्स पर चल रहा है, तो systimestamp
आमतौर पर माइक्रोसेकंड होंगे।
1 select systimestamp - to_timestamp( '2012-07-23', 'yyyy-mm-dd' )
2* from dual
SQL> /
SYSTIMESTAMP-TO_TIMESTAMP('2012-07-23','YYYY-MM-DD')
---------------------------------------------------------------------------
+000000000 14:51:04.339000000
आप EXTRACT
. का उपयोग कर सकते हैं INTERVAL DAY TO SECOND
. के अलग-अलग तत्वों को निकालने के लिए कार्य करता है
SQL> ed
Wrote file afiedt.buf
1 select extract( day from diff ) days,
2 extract( hour from diff ) hours,
3 extract( minute from diff ) minutes,
4 extract( second from diff ) seconds
5 from (select systimestamp - to_timestamp( '2012-07-23', 'yyyy-mm-dd' ) diff
6* from dual)
SQL> /
DAYS HOURS MINUTES SECONDS
---------- ---------- ---------- ----------
0 14 55 37.936
फिर आप उन सभी घटकों को मिलीसेकंड में बदल सकते हैं और उन्हें जोड़ सकते हैं
SQL> ed
Wrote file afiedt.buf
1 select extract( day from diff )*24*60*60*1000 +
2 extract( hour from diff )*60*60*1000 +
3 extract( minute from diff )*60*1000 +
4 round(extract( second from diff )*1000) total_milliseconds
5 from (select systimestamp - to_timestamp( '2012-07-23', 'yyyy-mm-dd' ) diff
6* from dual)
SQL> /
TOTAL_MILLISECONDS
------------------
53831842
आम तौर पर, हालांकि, INTERVAL DAY TO SECOND
में से किसी एक को रखना अधिक उपयोगी होता है। दो TIMESTAMP
के बीच मिलीसेकंड की कुल संख्या की गणना करने के बजाय घंटे, मिनट, सेकंड आदि के लिए प्रतिनिधित्व या अलग कॉलम रखना मान।