समस्या:
आप SQLite डेटाबेस में दी गई तारीख में एक महीना जोड़ना चाहेंगे।
उदाहरण:
हमारे डेटाबेस में production
कॉलम में डेटा के साथ id
, product
, और start_date
।
आईडी | उत्पाद | <थ>प्रारंभ_दिनांक|
---|---|---|
1 | डेस्क | 2019-08-17 |
2 | आर्मचेयर | 2019-07-17 |
3 | सोफा | 2019-10-31 |
उत्पादों की एक नई उत्पादन प्रारंभ तिथि है जो ऊपर सूचीबद्ध की तुलना में एक महीने बाद है। आइए उत्पादों के नाम और उनकी नई प्रारंभ तिथि प्राप्त करें।
यहां वह प्रश्न है जो आप लिखेंगे:
समाधान:
SELECT product, DATE(start_date,'+1 months') AS new_start_date FROM production;
ये रहा क्वेरी का नतीजा:
आईडी | उत्पाद | new_start_date |
---|---|---|
1 | डेस्क | 2019-09-17 |
2 | आर्मचेयर | 2019-08-17 |
3 | सोफा | 2019-12-01 |
चर्चा:
SQLite का प्रयोग करें DATE()
किसी दिए गए दिनांक (या दिनांक और समय) में एक महीना जोड़ने का कार्य। आवश्यक तर्कों में बदलने के लिए दिनांक/दिनांक समय और मानों के साथ एक या अधिक संशोधक शामिल हैं जो इंगित करते हैं कि इकाइयों में कितने जोड़े या घटाए गए हैं।
पहला तर्क दिनांक/डेटाटाइम मान या दिनांक/डेटाटाइम कॉलम लौटाने वाला अभिव्यक्ति हो सकता है। हमारे उदाहरण में, यह कॉलम है start_date
.
संशोधक इंगित करते हैं कि क्या (और कितना) समय इकाई को जोड़ना/घटाना है। हमारे उदाहरण में, हम संशोधक '+1 महीने . का उपयोग करते हैं '। संशोधक या तो प्लस या माइनस से शुरू होता है, जो जोड़ या घटाव को दर्शाता है। फिर एक मान (उदा. 1) और इकाई (उदा. महीने . है , वर्ष , दिन , आदि) यदि आप '-2 दिन . लिखते हैं ', आप किसी दी गई तारीख से 2 दिन घटाते हैं।
महत्वपूर्ण: कुछ संशोधकों को ऊपर दिखाए गए की तुलना में थोड़ा अलग सिंटैक्स की आवश्यकता होती है। उदाहरण के लिए, 'कार्यदिवस ' संशोधक मान से पहले आता है (यानी DATE(start_date,'weekday 3')
) अन्य संशोधक कोई मान नहीं लेते हैं, जैसे 'महीने की शुरुआत ', जो किसी दी गई तारीख के लिए महीने के पहले दिन को प्रदर्शित करता है (यानी DATE(start_date,' start of month')
) आप SQLite दस्तावेज़ में दिनांक और समय संशोधक के बारे में सटीक जानकारी पा सकते हैं।
हमने नए कॉलम को नाम दिया है जिसमें अपडेट की गई प्रारंभ तिथि शामिल है new_start_date
. डेस्क . के लिए नई उत्पादन प्रारंभ तिथि है 2019-09-17
, 2019-08-17
. की मूल तारीख से एक महीने बाद . ध्यान दें कि 2019-10-31
. के लिए , नई तिथि है 2019-12-01
; ऐसा इसलिए है क्योंकि नवंबर में 30 दिन होते हैं, 31 नहीं।