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

एसक्यूएल कमांड में तारीख की तुलना करें

सं. दिनांक/समय टिकट कोई प्रारूप नहीं है . Oracle आपके द्वारा देखे जाने वाले प्रारूप में दिनांक/टाइमस्टैम्प को संग्रहीत नहीं करता है। आप जो प्रारूप देख रहे हैं वह केवल प्रदर्शन . के लिए है उद्देश्य। तिथि आंतरिक रूप से 7 बाइट्स में संग्रहीत होती है जो कि Oracle का स्वामित्व प्रारूप है

बेशक आप कर सकते थे। आप TRUNC . का उपयोग कर सकते हैं जो समय भाग को छोटा कर देता है और केवल दिनांक भाग छोड़ता है और डेटा प्रकार दिनांक के रूप में रहता है।

उदाहरण के लिए,

SQL> SELECT TRUNC(SYSTIMESTAMP) my_tmstmp FROM DUAL;

MY_TMSTMP
----------
2015-05-29

तो, आपको उस प्रारूप में उपयोगकर्ता इनपुट स्ट्रिंग . के रूप में मिलता है . आपको पहले रूपांतरित करना होगा इसे DATE में TO_DATE . का उपयोग करके और फिर इसकी तुलना करें।

उदाहरण के लिए,

WHERE TRUNC(dt_column) < TO_DATE('05/29/2015 12:07:58', 'MM/DD/YYYY HH24:MI:SS')

जैसा कि मैंने पहले ही कहा, यदि आप समय भाग को अनदेखा करना चाहते हैं, तो TRUNC apply लागू करें ।

हालांकि, TRUNC applying लागू करना दिनांक कॉलम . पर किसी भी नियमित अनुक्रमणिका . को दबा देगा उस कॉलम पर। प्रदर्शन की दृष्टि से, दिनांक सीमा शर्त का बेहतर उपयोग करें ।

उदाहरण के लिए,

WHERE dt_column
BETWEEN 
        TO_DATE('05/29/2015 12:07:58', 'MM/DD/YYYY HH24:MI:SS')
AND     
        TO_DATE('05/29/2015 12:07:58', 'MM/DD/YYYY HH24:MI:SS') +1


  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. टॉमकैट 8 सर्वर के साथ Oracle9 डेटाबेस से कनेक्शन बनाते समय AbstractMethodError प्राप्त करना

  3. एक गुच्छा एसक्यूएल स्टेटमेंट से पार्स टेबल नाम

  4. ऑरैकल डेटाबेस में और जैसे विशेष वर्ण कैसे दर्ज करें?

  5. मैं अपने डेटा सेट में तारीखों के सन्निहित सेट के लिए कुशलतापूर्वक क्वेरी कैसे कर सकता हूं?