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

Oracle:मान्य माह नहीं है

1.

To_Date(To_Char(MaxDate, 'DD/MM/YYYY')) = REP_DATE

समस्या पैदा कर रहा है। जब आप समय प्रारूप के बिना to_date का उपयोग करते हैं, तो ऑरैकल कन्वर्ट करने के लिए वर्तमान सत्र एनएलएस प्रारूप का उपयोग करेगा, जो आपके मामले में "डीडी/एमएम/वाई वाई वाई वाई" नहीं हो सकता है। इसे जांचें...

SQL> select sysdate from dual;

SYSDATE
---------
26-SEP-12

Which means my session's setting is DD-Mon-YY

SQL> select to_char(sysdate,'MM/DD/YYYY') from dual;

TO_CHAR(SY
----------
09/26/2012


SQL> select to_date(to_char(sysdate,'MM/DD/YYYY')) from dual;
select to_date(to_char(sysdate,'MM/DD/YYYY')) from dual
               *
ERROR at line 1:
ORA-01843: not a valid month

SQL> select to_date(to_char(sysdate,'MM/DD/YYYY'),'MM/DD/YYYY') from dual;

TO_DATE(T
---------
26-SEP-12

2.

इससे भी महत्वपूर्ण बात यह है कि आप सीधे तुलना करने के बजाय चार और फिर आज तक क्यों परिवर्तित हो रहे हैं

MaxDate = REP_DATE

यदि आप तुलना करने से पहले MaxDate में समय घटक को अनदेखा करना चाहते हैं, तो आपको इसका उपयोग करना चाहिए..

trunc(MaxDate ) = rep_date

इसके बजाय।

==अद्यतन:अद्यतन प्रश्न के आधार पर।

Rep_Date = 01/04/2009 Rep_Time = 01/01/1753 13:00:00

मुझे लगता है कि समस्या अधिक जटिल है। यदि rep_time केवल समय होने का इरादा है, तो आप इसे डेटाबेस में दिनांक के रूप में संग्रहीत नहीं कर सकते हैं। यह एक स्ट्रिंग या दिनांक से समय अंतराल या संख्यात्मक रूप से सेकंड के रूप में होना चाहिए (एलेक्स के लिए धन्यवाद, देखें यह ) . यदि संभव हो, तो मैं एक कॉलम rep_date का उपयोग करने का सुझाव दूंगा जिसमें दिनांक और समय दोनों हों और इसकी तुलना सीधे अधिकतम दिनांक कॉलम से करें।

यदि यह एक रनिंग सिस्टम है और आपका रिपडेट पर कोई नियंत्रण नहीं है, तो आप इसे आजमा सकते हैं।

trunc(rep_date) = trunc(maxdate) and 
to_char(rep_date,'HH24:MI:SS') = to_char(maxdate,'HH24:MI:SS')

किसी भी तरह से, समय गलत तरीके से संग्रहीत किया जा रहा है (जैसा कि आप वर्ष 1753 से बता सकते हैं) और आगे अन्य मुद्दे भी हो सकते हैं।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle प्रबंधित ODP.NET tnsnames.ora नहीं ढूँढ सकता

  2. जब मैं एक तिथि इनपुट करता हूं तो ऑरैकल में विभाजन के नाम कैसे प्राप्त करें?

  3. मुझे टी-एसक्यूएल क्वेरी को ओरेकल समर्थित क्वेरी में बदलने में मदद चाहिए

  4. संस्करण नियंत्रण के लिए Oracle SQL डेवलपर निर्यात स्रोत

  5. गतिशील एसक्यूएल क्वेरी परिणाम प्राप्त करने के लिए plsql ब्लॉक