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

ORA-01847 महीने का दिन 1 और महीने के आखिरी दिन के बीच होना चाहिए - लेकिन डेटा ठीक है

where . के साथ यह आपकी क्वेरी है खंड:

select value1, to_date(value1,'DD.MM.YYYY') 
from variableindex 
where value1 is not null and
      value1 <> '0' and
      creation_time_ > to_timestamp('20140307', 'YYYYMMDD') and
      to_date(value1 'DD.MM.YYYY') < to_date('20140301', 'YYYYMMDD')
order by 2;

Oracle where . में क्लॉज़ के प्रसंस्करण के क्रम की गारंटी नहीं देता है . तो, value <> '0' अंतिम शर्त से पहले चलने की गारंटी नहीं है। यह SQL सर्वर पर एक बड़ी समस्या होती है। एक समाधान case . का उपयोग करना है कथन:

select value1,to_date(value1, 'DD.MM.YYYY') 
from variableindex 
where value1 is not null and
      value1 <> '0' and
      creation_time_ > to_timestamp('20140307', 'YYYYMMDD') and
      (case when value <> '0' then to_date(value1, 'DD.MM.YYYY') end) <
          to_date('20140301', 'YYYYMMDD')
order by 2;

बल्कि बदसूरत, लेकिन यह आपकी समस्या का समाधान कर सकता है।



  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 - ORA-01489:स्ट्रिंग संयोजन का परिणाम बहुत लंबा है

  3. Oracle 10g में लेफ्ट जॉइन के साथ डिलीट करें

  4. सभी उपयोगकर्ता तालिकाओं को कैसे छोटा करें?

  5. OracleConnection.Open ORA-12541 TNS कोई श्रोता नहीं फेंक रहा है