SQLite datetime()
फ़ंक्शन आपको समय स्ट्रिंग और किसी भी संशोधक के आधार पर दिनांक और समय मान वापस करने में सक्षम बनाता है।
यह इस प्रारूप में दिनांक लौटाता है:YYYY-MM-DD HH:MM:SS
इस फ़ंक्शन का उपयोग करने के लिए, आपको एक समय स्ट्रिंग, साथ ही कोई भी (वैकल्पिक) संशोधक प्रदान करने की आवश्यकता है। एक संशोधक आपको दिनांक बदलने की अनुमति देता है, जैसे कि कई दिन जोड़ना, इसे स्थानीय समय पर सेट करना, आदि
सिंटैक्स
वाक्य रचना इस प्रकार है:
datetime(timestring, modifier, modifier, ...)
timestring
तर्क एक मान्य समय स्ट्रिंग होना चाहिए।
modifier
तर्क वैकल्पिक हैं। आप एक या अधिक संशोधक प्रदान कर सकते हैं। यदि आप एक संशोधक प्रदान करते हैं, तो यह एक मान्य संशोधक होना चाहिए।
उदाहरण
datetime()
को प्रदर्शित करने के लिए यहां एक उदाहरण दिया गया है फ़ंक्शन का उपयोग एक तर्क के साथ किया जा रहा है।
SELECT datetime('now');
परिणाम:
2020-04-28 23:56:06
now
टाइम स्ट्रिंग को वर्तमान दिनांक और समय में बदल दिया जाता है।
एक संशोधक जोड़ें
हम एक संशोधक का उपयोग करके पिछले परिणाम को संशोधित कर सकते हैं। यहाँ एक उदाहरण है।
SELECT datetime('now', '+3 hours');
परिणाम:
2020-04-29 02:56:52
इस मामले में, मैंने समय में तीन घंटे जोड़े। मूल समय को देखते हुए, इसके परिणामस्वरूप तारीख को अगले दिन आगे बढ़ा दिया गया।
एकाधिक संशोधक
जैसा कि बताया गया है, आप एक या अधिक संशोधक जोड़ सकते हैं। पिछले उदाहरण में एक और संशोधक जोड़ने का एक उदाहरण यहां दिया गया है।
SELECT datetime('now', '+3 hours', 'localtime');
परिणाम:
2020-04-29 12:58:13
मेरे मामले में, localtime
संशोधक के परिणामस्वरूप समय आगे बढ़ा।
ऐसा करने का कारण यह है कि localtime
संशोधक मानता है कि प्रदान की गई समय स्ट्रिंग यूनिवर्सल कोऑर्डिनेटेड टाइम (UTC) में है। इसके बाद यह समय स्ट्रिंग को समायोजित करता है ताकि यह स्थानीय समय प्रदर्शित करे।
इसलिए, आपके स्थानीय समय के आधार पर आपको एक अलग परिणाम मिल सकता है।
यहां यह फिर से मूल स्थानीय समय की तुलना संशोधित परिणाम से कर रहा है:
SELECT
datetime('now', 'localtime') AS "Local",
datetime('now', '+3 hours', 'localtime') AS "Modified";
परिणाम:
Local Modified ------------------- ------------------- 2020-04-29 10:02:09 2020-04-29 13:02:09
समय स्ट्रिंग के रूप में दिनांक
ऊपर दिए गए उदाहरणों में now
का इस्तेमाल किया गया है समय स्ट्रिंग के रूप में, लेकिन आप कोई मान्य समय स्ट्रिंग प्रदान कर सकते हैं।
यदि आप केवल दिनांक भाग प्रदान करते हैं, तो समय भाग सभी शून्य पर सेट हो जाएगा।
SELECT datetime('2010-08-15');
परिणाम:
2010-08-15 00:00:00
यदि केवल समय भाग की आपूर्ति की जाती है, तो दिनांक 2000-01-01 पर सेट है।
SELECT datetime('23:58:57');
परिणाम:
2000-01-01 23:58:57
यहां एक उदाहरण दिया गया है जो जूलियन डे को टाइम स्ट्रिंग के रूप में उपयोग करता है।
SELECT datetime('2451545.49927083');
परिणाम:
2000-01-01 23:58:57
डेटाटाइम() बनाम strftime()
datetime()
फ़ंक्शन बिल्कुल वही परिणाम देता है जो strftime('%Y-%m-%d %H:%M:%S', ...)
रिटर्न। datetime()
फ़ंक्शन इसे करने का एक अधिक सुविधाजनक तरीका है।
SELECT
datetime('now'),
strftime('%Y-%m-%d %H:%M:%S', 'now');
परिणाम:
datetime('now') strftime('%Y-%m-%d %H:%M:%S', 'now') ------------------- ------------------------------------ 2020-04-29 00:16:12 2020-04-29 00:16:12
दिनांक सीमा
जैसा कि सभी SQLite दिनांक और समय कार्यों के साथ होता है, datetime()
केवल 0000-01-01 00:00:00 और 9999-12-31 23:59:59 (जूलियन दिन संख्या 1721059.5 से 5373484.5) के बीच की तिथियों के लिए काम करता है।
उस सीमा से बाहर की तारीखों के लिए, परिणाम अपरिभाषित होते हैं।