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

एक तारीख में महीनों को जोड़ना SQL

Add_months() फ़ंक्शन का आपका उपयोग गलत है। यह दो शब्द नहीं है, यह सिर्फ एक है (अंडरस्कोर के साथ)

add_months(datesold, 1)

अंडरस्कोर नोट करें _ ADD . के बीच और MONTHS . यह फंक्शन कॉल है, ऑपरेटर नहीं।

वैकल्पिक रूप से आप उपयोग कर सकते हैं:

datesold + INTERVAL '1' month

हालांकि यह ध्यान देने योग्य है कि अंतराल के साथ अंकगणित सीमित है (यदि टूटा नहीं है) क्योंकि यह केवल दिनांक मान के महीने के मूल्य को "वृद्धि" करता है। इससे अमान्य तिथियां हो सकती हैं (जैसे जनवरी से फरवरी तक)। हालांकि यह प्रलेखित व्यवहार है (नीचे लिंक देखें) मैं इसे एक बग मानता हूं (एसक्यूएल मानक के लिए उन कार्यों की आवश्यकता होती है "अंकगणित दिनांक और समय से जुड़े प्राकृतिक नियमों का पालन करते हैं और ग्रेगोरियन कैलेंडर के अनुसार वैध डेटाटाइम या अंतराल परिणाम प्राप्त करते हैं /em> ")

विवरण के लिए मैनुअल देखें:
http ://docs.oracle.com/cd/E11882_01/server.112/e26088/functions011.htm#i76717
http://docs.oracle .com/cd/E11882_01/server.112/e26088/sql_elements001.htm#i48042

एक और बात:

तो फिर आप एक INSERT का उपयोग क्यों कर रहे हैं? बयान? मौजूदा पंक्तियों के डेटा को बदलने के लिए आपको UPDATE . का उपयोग करना चाहिए . तो ऐसा लगता है कि आप वास्तव में जो चाहते हैं वह कुछ इस प्रकार है:

update auctions
   set datesold = add_months(datesold, 1)
where item = 'Radio';


  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. इस FIRST_VALUE क्वेरी में क्या गलत है?

  3. एम-एम संबंध लागू करने के लिए ट्रिगर

  4. Oracle तालिका में डेटा सेट डालें

  5. क्यों यह त्रुटि आ रही है? 'VALUE.VALUE_TX' में नल नहीं डाला जा सकता

© कॉपीराइट http://hi.sqldat.com सर्वाधिकार सुरक्षित