समस्या:
आप SQLite में डेटाटाइम कॉलम या मान को प्रारूपित करना चाहते हैं।
उदाहरण:
हमारे डेटाबेस में ticket
कॉलम में डेटा के साथ passenger_ID
, train_number
, और sale_datetime
।
यात्री_आईडी | <थ>ट्रेन_नंबरsale_datetime | |
---|---|---|
245NX | 4505 | 2019-10-17 12:56:30 |
127RG | 3403 | 2019-10-17 11:45:23 |
567FH | 4505 | 2019-10-18 12:40:32 |
230AP | 6700 | 2019-10-18 13:20:20 |
118BB | 3403 | 2019-10-18 13:13:13 |
प्रत्येक टिकट बिक्री के लिए, यात्री आईडी, ट्रेन नंबर और बिक्री की तारीख और समय प्राप्त करें। हम साल और समय के बीच अल्पविराम के साथ स्लैश (/) द्वारा अलग किए गए दिन, महीने और वर्ष को दिखाने के लिए बिक्री की तारीख को प्रारूपित करना चाहते हैं। हम केवल बिक्री के घंटे और मिनट चाहते हैं।
यहां वह प्रश्न है जो आप लिखेंगे:
समाधान:
SELECT passenger_ID, train_number, STRFTIME('%d/%m/%Y, %H:%M', sale_datetime) AS sale_formatted_datetime FROM ticket;
ये रहा क्वेरी का नतीजा:
यात्री_आईडी | <थ>ट्रेन_नंबरsale_formatted_datetime | |
---|---|---|
245NX | 4505 | 17/10/2019, 12:56 |
127RG | 3403 | 17/10/2019, 11:45 |
567FH | 4505 | 18/10/2019, 12:40 |
230AP | 6700 | 18/10/2019, 13:20 |
118BB | 3403 | 18/10/2019, 13:13 |
चर्चा:
STRFTIME()
का उपयोग करें SQLite में दिनांक \ समय \ डेटाटाइम डेटा प्रारूपित करने के लिए कार्य। यह फ़ंक्शन दो तर्क लेता है। पहला तर्क एक प्रारूप स्ट्रिंग है जिसमें दिनांक/समय भाग पैटर्न होता है। हमारे उदाहरण में, हम प्रारूप स्ट्रिंग '%d/%m/%Y, %H:%M का उपयोग करते हैं '। इस स्ट्रिंग में:
- %d दो अंकों का दिन है।
- %m दो अंकों का महीना है।
- %Y चार अंकों का वर्ष है।
- %H दो अंकों का घंटा है।
- %M दो अंकों का मिनट है।
आप SQLite दस्तावेज़ में अधिक दिनांक और समय निर्दिष्टकर्ता पा सकते हैं।
दूसरा तर्क प्रारूप के लिए समय/दिनांक/डेटाटाइम मान है। यह एक समय/दिनांक/डेटाटाइम मान या समय/दिनांक/डेटाटाइम कॉलम का नाम लौटाने वाला अभिव्यक्ति हो सकता है। (हमारे उदाहरण में, यह कॉलम है sale_datetime
।)
STRFTIME()
स्वरूपित दिनांक और समय लौटाता है। हमारे उदाहरण में, स्वरूपित दिनांक और समय में सेकंड नहीं होते हैं और दिनांक भागों को डैश (-) के बजाय स्लैश (/) द्वारा अलग किया जाता है।