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

स्ट्रिंग रूपांतरण के लिए Oracle दिनांक

<ब्लॉकक्वॉट>

COL1 में डेटा dd-mon-yy में है

नहीं यह नहीं। एक DATE कॉलम नहीं करता है कोई प्रारूप हो। जब आप इसे प्रदर्शित करते हैं तो यह केवल आपके SQL क्लाइंट द्वारा उस प्रतिनिधित्व में परिवर्तित (निहित रूप से) होता है।

यदि COL1 वास्तव में एक DATE है to_date() . का उपयोग कर कॉलम पर यह बेकार है क्योंकि to_date() एक स्ट्रिंग को DATE में कनवर्ट करता है।

आपको केवल to_char() चाहिए, और कुछ नहीं:

SELECT TO_CHAR(col1, 'mm/dd/yyyy') 
FROM TABLE1

आपके मामले में क्या होता है कि to_date() . पर कॉल करना DATE . को रूपांतरित करता है एक वर्ण मान में (डिफ़ॉल्ट एनएलएस प्रारूप लागू करना) और फिर उसे वापस एक DATE में परिवर्तित करना। इस दोहरे अंतर्निहित रूपांतरण के कारण रास्ते में कुछ जानकारी खो जाती है।

संपादित करें

तो आपने एक चरित्र कॉलम में DATE को स्टोर करने के लिए वह बड़ी गलती की है। और इसलिए आपको अभी समस्याएँ आती हैं।

सबसे अच्छा (और ईमानदार होना:केवल समझदार) समाधान उस कॉलम को DATE . में बदलना है . फिर आप निहित डेटा प्रकार रूपांतरण के बारे में चिंता किए बिना मूल्यों को किसी भी प्रतिनिधित्व में परिवर्तित कर सकते हैं।

लेकिन शायद इसका उत्तर है "मुझे यह मॉडल विरासत में मिला है, मुझे इसका सामना करना है " (यह हमेशा होता है, जाहिरा तौर पर गलत डेटाटाइप चुनने के लिए कोई भी जिम्मेदार नहीं है), तो आपको RR का उपयोग करने की आवश्यकता है YY . के बजाय :

SELECT TO_CHAR(TO_DATE(COL1,'dd-mm-rr'), 'mm/dd/yyyy')
FROM TABLE1

चाल चलनी चाहिए। ध्यान दें कि मैंने mon . भी बदल दिया है से mm जैसा कि आपका उदाहरण है 27-11-89 जिसमें महीने के लिए एक संख्या है, न कि "शब्द" (जैसे NOV )

अधिक विवरण के लिए मैनुअल देखें:http://docs.oracle.com/cd/B28359_01/server.111/b28286/sql_elements004.htm#SQLRF00215



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. एक नियतात्मक फ़ंक्शन के साथ LIKE ऑपरेटर का उपयोग करते समय Oracle निष्पादन योजनाएँ

  2. आप वैरिएबल का उपयोग करके डायनेमिक क्वेरी में IN क्लॉज कैसे निर्दिष्ट करते हैं?

  3. Oracle ORA-00979 - अभिव्यक्ति द्वारा समूह नहीं

  4. Oracle में RTRIM () फ़ंक्शन

  5. एनएलएस पैरामीटर और उनकी प्राथमिकताएं निर्धारित करने के तरीके (ओरेकल डेटाबेस)