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

Oracle 11g में TIMESTAMPDIFF?

वह फ़ंक्शन Oracle RDMBS में मौजूद नहीं है; यह स्पष्ट रूप से Oracle लाइट (जिसका मैंने कभी सामना नहीं किया) में किया था और मेरा मानना ​​है कि यह MySQL जैसे अन्य डेटाबेस में है।

डेटाटाइम और अंतराल अंकगणित जो आपको वहां के रास्ते का हिस्सा मिलेगा; आप या तो एक टाइमस्टैम्प को दूसरे से घटा सकते हैं; या एक तारीख से दूसरी तारीख, या दोनों का मिश्रण - लेकिन एक डेटा प्रकार से चिपके रहना आसान है। आप जो उपयोग करते हैं उसके आधार पर आपको या तो एक अंतराल या दिनों की संख्या का प्रतिनिधित्व करने वाला एक नंबर मिलेगा:

DUAL से
SQL> SELECT CURRENT_TIMESTAMP - TIMESTAMP '1998-12-09 00:00:00' FROM DUAL;

CURRENT_TIMESTAMP-TIMESTAMP'1998-12-0900:00:00'
---------------------------------------------------------------------------
+000006169 16:16:21.287166000

SQL> SELECT CURRENT_DATE - DATE '1998-12-09' FROM DUAL;

CURRENT_DATE-DATE'1998-12-09'
-----------------------------
                   6169.67775

यदि आप केवल पूरे दिनों की संख्या चाहते हैं तो आप <का उपयोग कर सकते हैं। कोड>अर्क () अंतराल के लिए केवल वांछित तत्व प्राप्त करने के लिए, या ट्रंक () संख्या के लिए भिन्नात्मक भाग को हटाने के लिए:

SQL> SELECT EXTRACT(DAY FROM CURRENT_TIMESTAMP - TIMESTAMP '1998-12-09 00:00:00') FROM DUAL;

EXTRACT(DAYFROMCURRENT_TIMESTAMP-TIMESTAMP'1998-12-0900:00:00')
---------------------------------------------------------------
                                                           6169

SQL> SELECT TRUNC(CURRENT_DATE - DATE '1998-12-09') FROM DUAL;

TRUNC(CURRENT_DATE-DATE'1998-12-09')
------------------------------------
                                6169

आप trunc() भी कर सकते हैं यदि आप चाहें तो तुलना से पहले की वर्तमान तिथि, इसलिए आप दोनों की तुलना मध्यरात्रि में कर रहे हैं, जिसका अर्थ है कि निकालने के लिए कोई भिन्नात्मक दिन नहीं होगा:

SQL> SELECT TRUNC(CURRENT_DATE) - DATE '1998-12-09' FROM DUAL;

TRUNC(CURRENT_DATE)-DATE'1998-12-09'
------------------------------------
                                6169

मैंने निश्चित तिथि के लिए एएनएसआई तिथि अक्षर का उपयोग किया है, लेकिन आप मौजूदा तिथि या टाइमस्टैम्प चर या कॉलम का उपयोग कर सकते हैं; या to_date() या to_timestamp() यदि आपके पास एक अलग प्रारूप में एक स्ट्रिंग है।

आप extract() . का भी उपयोग कर सकते हैं अंतराल के घटकों को संयुक्त मान में बदलने के लिए, जैसा कि यहां दिखाया गया है ; और यह भी सुनिश्चित करें कि आप current_date के बीच के अंतर से अवगत हैं। और sysdate , और टाइमस्टैम्प समकक्ष



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. DG4ODBC के लिए Oracle भाषा पैरामीटर सेट करना

  2. एसक्यूएल क्वेरी निष्पादित करने में सक्षम नहीं

  3. समयरेखा के आधार पर स्वचालित रूप से डेटा को एक स्कीमा से दूसरे में कॉपी करने के लिए Oracle प्रक्रिया या कार्य

  4. क्या एक इन्सर्ट ऑपरेशन एक और डीडीएल ऑपरेशन प्रतीक्षा कर सकता है?

  5. ओरेकल pl/sql में एक्सएमएल पार्सिंग