समस्या:
आप PostgreSQL डेटाबेस से समय क्षेत्र की जानकारी के साथ वर्तमान दिनांक और समय प्राप्त करना चाहते हैं।
समाधान:
समय क्षेत्र ऑफ़सेट के साथ वर्तमान दिनांक और समय प्राप्त करने के लिए हम CURRENT_TIMESTAMP या Now() का उपयोग करेंगे।
SELECT CURRENT_TIMESTAMP ;
ये रहा क्वेरी का नतीजा:
2019-09-15 13:13:12.118432+02
चर्चा:
CURRENT_TIMESTAMP
वर्तमान दिनांक, समय और समय क्षेत्र ऑफ़सेट लौटाता है (उस मशीन के दिनांक, समय और समय क्षेत्र का उपयोग करके जिस पर PostgreSQL चल रहा है)। इसे 'YYYY-MM-DD hh:mm:ss.nnnnnn+/-tz' में मान के रूप में लौटाया जाता है प्रारूप। इस प्रारूप में:
- YYYY 4 अंकों का वर्ष है।
- एमएम दो अंकों का महीना है।
- डीडी महीने का दो अंकों का दिन है।
- हह दो अंकों का घंटा है।
- मिमी दो अंकों का मिनट है।
- ss दो अंकों का सेकंड है।
- nnnnnn 0 से 6 तक भिन्नात्मक सेकंड (यानी सटीक) की संख्या को परिभाषित करता है।
- +tz या -tz समय क्षेत्र ऑफसेट है, या तो यूटीसी से प्लस या माइनस।
जैसा कि आपने देखा, इस फ़ंक्शन में कोई कोष्ठक नहीं है। हालाँकि, यदि आप किसी विशिष्ट सटीकता के साथ दिनांक और समय प्रदर्शित करना चाहते हैं, तो आप वैकल्पिक पूर्णांक तर्क का उपयोग कर सकते हैं। यह भिन्नात्मक सेकंड और समय क्षेत्र ऑफ़सेट के साथ दिनांक और समय देता है। यह तर्क 0 से 6 की सीमा में होना चाहिए; 0 कोई भिन्नात्मक सेकंड नहीं है, 1 एक भिन्नात्मक सेकंड है (जैसे दशमलव के पीछे एक स्थान), आदि। अगला उदाहरण देखें:
SELECT CURRENT_TIMESTAMP(3) ;
ये रहा क्वेरी का नतीजा:
2019-09-15 13:01:51.142+02
इस परिणाम में 3 अंकों का भिन्नात्मक सेकंड होता है क्योंकि हम CURRENT_TIMESTAMP फ़ंक्शन में 3 को तर्क के रूप में रखते हैं। समय क्षेत्र ऑफ़सेट अभी भी अंत में दिखाई देता है।
इस फ़ंक्शन द्वारा लौटाया गया समय लेन-देन या एकल क्वेरी के दौरान नहीं बदलता है। यह हमेशा वह समय होता है जब लेनदेन शुरू होता है।
Now() CURRENT_TIMESTAMP
के समान है कार्य करता है और वही परिणाम देता है। अंतर यह है कि CURRENT_TIMESTAMP
SQL मानक फ़ंक्शन है, जबकि Now() PostgreSQL के लिए विशिष्ट है।
SELECT NOW() ;
ये रहा क्वेरी का नतीजा:
2019-08-27 12:18:55.324145+02
ध्यान दें कि Now() फ़ंक्शन को ब्रैकेट की आवश्यकता होती है। हालांकि, आप उन्हें खाली छोड़ सकते हैं और डिफ़ॉल्ट मान प्राप्त कर सकते हैं।
CURRENT_TIMESTAMP और Now() timestamptz लौटाएं डेटा प्रकार।