SQLite में एक date()
होती है फ़ंक्शन जो आपको समय स्ट्रिंग और किसी भी संशोधक के आधार पर दिनांक मान वापस करने में सक्षम बनाता है।
यह इस प्रारूप में दिनांक लौटाता है:YYYY-MM-DD
इस फ़ंक्शन का उपयोग करने के लिए, आपको एक समय स्ट्रिंग, साथ ही कोई भी (वैकल्पिक) संशोधक प्रदान करने की आवश्यकता है। एक संशोधक आपको दिनांक बदलने की अनुमति देता है, जैसे कि कई दिन जोड़ना, इसे स्थानीय समय पर सेट करना, आदि
सिंटैक्स
date()
. का सिंटैक्स फ़ंक्शन इस प्रकार है:
date(timestring, modifier, modifier, ...)
timestring
तर्क एक मान्य समय स्ट्रिंग होना चाहिए।
modifier
तर्क वैकल्पिक हैं। आप एक या अधिक संशोधक प्रदान कर सकते हैं। यदि आप एक संशोधक प्रदान करते हैं, तो यह एक मान्य संशोधक होना चाहिए।
उदाहरण
date()
को प्रदर्शित करने के लिए यहां एक उदाहरण दिया गया है फ़ंक्शन का उपयोग एक तर्क के साथ किया जा रहा है।
SELECT date('now');
परिणाम:
2020-04-27
now
टाइम स्ट्रिंग को वर्तमान दिनांक और समय में बदल दिया जाता है। यह देखते हुए कि मैं date()
. का उपयोग कर रहा हूं समारोह, केवल तारीख लौटा दी जाती है।
एक संशोधक जोड़ें
हम एक संशोधक का उपयोग करके पिछले परिणाम को संशोधित कर सकते हैं। यहाँ एक उदाहरण है।
SELECT date('now', '+6 months');
परिणाम:
2020-10-27
इस मामले में, मैंने तारीख में छह महीने जोड़े हैं।
एकाधिक संशोधक
जैसा कि बताया गया है, आप एक या अधिक संशोधक जोड़ सकते हैं। पिछले उदाहरण में एक और संशोधक जोड़ने का एक उदाहरण यहां दिया गया है।
SELECT date('now', '+6 months', 'localtime');
परिणाम:
2020-10-28
मेरे मामले में, localtime
संशोधक के परिणामस्वरूप दिनांक में एक दिन जोड़ा गया।
ऐसा करने का कारण यह है कि localtime
संशोधक मानता है कि प्रदान की गई समय स्ट्रिंग यूनिवर्सल कोऑर्डिनेटेड टाइम (UTC) में है। इसके बाद यह समय स्ट्रिंग को समायोजित करता है ताकि यह स्थानीय समय प्रदर्शित करे।
इसलिए, आपके स्थानीय समय के आधार पर आपको एक अलग परिणाम मिल सकता है।
समय स्ट्रिंग के रूप में शाब्दिक स्ट्रिंग
ऊपर दिए गए उदाहरणों में now
का इस्तेमाल किया गया है समय स्ट्रिंग के रूप में, लेकिन आप कोई भी मान्य समय स्ट्रिंग प्रदान कर सकते हैं।
यहां कुछ अन्य उदाहरण दिए गए हैं।
SELECT date('2020-04-27 23:58:57');
परिणाम:
2020-04-27
इस मामले में यह केवल तिथि से समय भाग को हटा देता है।
यहाँ यह फिर से है, लेकिन कुछ संशोधक के साथ।
SELECT date('2020-04-27 23:58:57', 'start of year', '+6 months');
परिणाम:
2020-07-01
इस मामले में मैं उस तारीख को प्राप्त करना चाहता था जो प्रदान की गई तारीख के वर्ष की शुरुआत से 6 महीने है।
यहां एक उदाहरण दिया गया है जो जूलियन डे को टाइम स्ट्रिंग के रूप में उपयोग करता है।
SELECT date('2458967.49737293');
परिणाम:
2020-04-27
तारीख() बनाम strftime()
date()
फ़ंक्शन बिल्कुल वही परिणाम देता है जो strftime('%Y-%m-%d', ...)
रिटर्न। date()
फ़ंक्शन इसे करने का एक अधिक सुविधाजनक तरीका है।
SELECT
date('now'),
strftime('%Y-%m-%d', 'now');
परिणाम:
date('now') strftime('%Y-%m-%d', 'now') ----------- --------------------------- 2020-04-28 2020-04-28
दिनांक सीमा
जैसा कि सभी SQLite दिनांक और समय कार्यों के साथ होता है, date()
केवल 0000-01-01 00:00:00 और 9999-12-31 23:59:59 (जूलियन दिन संख्या 1721059.5 से 5373484.5) के बीच की तिथियों के लिए काम करता है।
उस सीमा से बाहर की तारीखों के लिए, परिणाम अपरिभाषित होते हैं।