SQLite strftime()
फ़ंक्शन आपको एक निर्दिष्ट प्रारूप में दिनांक और समय मान वापस करने में सक्षम बनाता है।
लौटाया गया वास्तविक दिनांक/समय मान उस समय स्ट्रिंग पर आधारित होता है जिसे आप फ़ंक्शन को कॉल करते समय एक तर्क के रूप में प्रदान करते हैं, साथ ही आपके द्वारा शामिल किए गए किसी भी संशोधक (वैकल्पिक तर्कों के रूप में)। एक संशोधक आपको दिनांक बदलने की अनुमति देता है, जैसे कि कई दिन जोड़ना, इसे स्थानीय समय पर सेट करना, आदि
सिंटैक्स
वाक्य रचना इस प्रकार है:
strftime(format, timestring, modifier, modifier, ...)
format
तर्क strftime()
. के लिए मान्य प्रारूप स्ट्रिंग प्रतिस्थापन का कोई भी संयोजन हो सकता है समारोह।
timestring
तर्क एक मान्य समय स्ट्रिंग होना चाहिए।
modifier
तर्क वैकल्पिक हैं। आप एक या अधिक संशोधक प्रदान कर सकते हैं। यदि आप एक संशोधक प्रदान करते हैं, तो यह एक मान्य संशोधक होना चाहिए।
उदाहरण
प्रदर्शित करने के लिए यहां एक उदाहरण दिया गया है।
SELECT strftime('%Y-%m-%d %H:%M:%S', 'now');
परिणाम:
2020-04-29 01:29:54
now
प्रदान की गई प्रारूप स्ट्रिंग के आधार पर समय स्ट्रिंग को वर्तमान दिनांक और समय में परिवर्तित किया जाता है।
इस मामले में, मेरी प्रारूप स्ट्रिंग बिल्कुल वही परिणाम लौटाती है जो datetime('now')
वापस आ जाता।
एक संशोधक जोड़ें
हम एक संशोधक का उपयोग करके पिछले परिणाम को संशोधित कर सकते हैं। यहां एक उदाहरण दिया गया है।
SELECT strftime('%Y-%m-%d %H:%M:%S', 'now', '+2 hours');
परिणाम:
2020-04-29 03:31:50
इस मामले में मैंने समय में दो घंटे जोड़े।
एकाधिक संशोधक
आप कई संशोधक जोड़ सकते हैं। पिछले उदाहरण में एक और संशोधक जोड़ने का एक उदाहरण यहां दिया गया है।
SELECT strftime('%Y-%m-%d %H:%M:%S', 'now', '+2 hours', 'localtime');
परिणाम:
2020-04-29 13:33:22
मेरे मामले में, localtime
संशोधक के परिणामस्वरूप समय आगे बढ़ा।
ऐसा इसलिए है क्योंकि localtime
संशोधक मानता है कि प्रदान की गई समय स्ट्रिंग यूनिवर्सल कोऑर्डिनेटेड टाइम (UTC) में है। इसके बाद यह समय स्ट्रिंग को समायोजित करता है ताकि यह स्थानीय समय प्रदर्शित करे।
आपके स्थानीय समय के आधार पर आपको भिन्न परिणाम मिल सकते हैं।
यहां यह फिर से मूल स्थानीय समय की तुलना संशोधित परिणाम से कर रहा है:
SELECT
strftime('%Y-%m-%d %H:%M:%S', 'now', 'localtime') AS "Local",
strftime('%Y-%m-%d %H:%M:%S', 'now', '+2 hours', 'localtime') AS "Modified";
परिणाम:
Local Modified ------------------- ------------------- 2020-04-29 11:34:57 2020-04-29 13:34:57
यूनिक्स/युग काल
आप %s
. का उपयोग कर सकते हैं प्रारूप स्ट्रिंग (लोअरकेस) युग समय की गणना करने के लिए।
SELECT strftime('%s', 'now');
परिणाम:
1588124826
युग समय (जिसे युग समय, पॉज़िक्स समय, युग के बाद से सेकंड या UNIX युग समय के रूप में भी जाना जाता है) 1970-01-01 के बाद से सेकंड की संख्या है।
यूनिक्स समय का व्यापक रूप से ऑपरेटिंग सिस्टम और फ़ाइल स्वरूपों में उपयोग किया जाता है।
जूलियन डे
आप %J
. का उपयोग कर सकते हैं जूलियन दिवस वापस करने के लिए।
जूलियन दिवस 24 नवंबर, 4714 ईसा पूर्व ग्रीनविच में दोपहर के बाद से दिनों की संख्या है। (प्रोलेप्टिक ग्रेगोरियन कैलेंडर का उपयोग करके)।
यदि प्रोलेप्टिक जूलियन कैलेंडर का उपयोग कर रहे हैं, तो यह सोमवार, 1 जनवरी, 4713 ई.पू. है।
जूलियन दिवस आमतौर पर खगोलविदों, सॉफ़्टवेयर आदि द्वारा दो घटनाओं के बीच बीता हुआ दिनों की गणना करने के लिए उपयोग किया जाता है।
जूलियन दिवस को strftime()
. के साथ वापस करने का तरीका यहां दिया गया है समारोह।
SELECT strftime('%J', 'now');
परिणाम:
2458968.575441667
SQLite में ऐसा करने का दूसरा तरीका julianday()
. का उपयोग करना है समारोह।
दिनांक सीमा
जैसा कि सभी SQLite दिनांक और समय कार्यों के साथ होता है, strftime()
केवल 0000-01-01 00:00:00 और 9999-12-31 23:59:59 (जूलियन दिन संख्या 1721059.5 से 5373484.5) के बीच की तिथियों के लिए काम करता है।
उस सीमा से बाहर की तारीखों के लिए, परिणाम अपरिभाषित होते हैं।