Oracle
 sql >> डेटाबेस >  >> RDS >> Oracle

Oracle जावा System.currentTimeMillis () के समकक्ष है?

जावा फ़ंक्शन मिलीसेकंड की संख्या देता है जो एक निश्चित समय के बाद से बीत चुके हैं। वह समय 1970 यूटीसी के पहले दिन की मध्यरात्रि है, यानी यूनिक्स घड़ी के समय की शुरुआत।

निम्न कार्य PL/SQL के लिए समान है। यह वर्तमान टाइमस्टैम्प को प्रारंभिक बिंदु (जहाँ ms=1) से घटाता है। यह विभिन्न समय घटकों को निकालता है और उन्हें सेकंड में बदल देता है। अंत में यह मिलीसेकंड में मान प्राप्त करने के लिए हर चीज को 1000 से गुणा करता है:

create or replace function current_millisecs 
    return number 
is
    base_point constant timestamp := to_timestamp('01-JAN-1970 00:00:00.000');
    now constant timestamp := systimestamp AT TIME ZONE 'UTC' ;
begin
    return (
                  ((extract(day    from (now-base_point)))*86400)
                + ((extract(hour   from (now-base_point)))*3600)
                + ((extract(minute from (now-base_point)))*60)
                + ((extract(second from (now-base_point))))
           ) * 1000;
end;
/

यदि आपके पास डेटाबेस में जावा सक्षम है तो आपको इसके बजाय जावा संग्रहित प्रक्रिया बनाना आसान लग सकता है:

create or replace function currentTimeMillis return number as
language java name 'java.lang.System.currentTimeMillis() return java.lang.Integer';
/

दो दृष्टिकोणों की तुलना:

SQL> select currentTimeMillis as JAVA
  2         , current_millisecs as PLSQL
  3         , currentTimeMillis - current_millisecs as DIFF
  4  from dual
  5  /

      JAVA      PLSQL       DIFF
---------- ---------- ----------
1.2738E+12 1.2738E+12          0

SQL>

(मेरा धन्यवाद साइमन निकर्सन को जाता है, जिन्होंने मेरे पीएल/एसक्यूएल फ़ंक्शन के पिछले संस्करण में टाइपो को देखा, जिसने एक विषम परिणाम उत्पन्न किया।)

संयोग से, यदि आप केवल निकटतम सेंटीसेकंड के समय में रुचि रखते हैं, तो Oracle में इसके लिए एक अंतर्निहित है:DBMS_UTILITY.GET_TIME() .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. संग्रह में सबसे महंगी फिल्म (फिल्मों) की लागत क्या थी?

  2. Oracle में ट्रिगर करने के लिए पैरामीटर कैसे भेजें?

  3. मेरी निर्यात फ़ाइल में Oracle, ब्लॉब डेटा अनुपलब्ध हैं

  4. तत्काल क्रियान्वित करते समय अमान्य वर्ण त्रुटि

  5. पर्ल का उपयोग करके Oracle में कई बार क्वेरी करना केवल पहली क्वेरी देता है