PostgreSQL में, timeofday()
एक गैर-एसक्यूएल-मानक समय फ़ंक्शन है जो समय क्षेत्र के संक्षिप्त नाम के साथ वर्तमान दिनांक और समय लौटाता है।
यह clock_timestamp()
के समान है फ़ंक्शन, सिवाय इसके कि यह अपना परिणाम स्वरूपित text
. के रूप में देता है स्ट्रिंग के बजाय timestamp with time zone
मूल्य।
एक बयान के निष्पादन के दौरान दोनों कार्यों का परिणाम बदल जाता है। इसलिए, यदि आप फ़ंक्शन को एक ही स्टेटमेंट में कई बार कॉल करते हैं, तो आपको स्टेटमेंट के अलग-अलग हिस्सों में एक अलग परिणाम मिल सकता है।
सिंटैक्स
वाक्य रचना इस प्रकार है:
timeofday()
तो यह किसी भी पैरामीटर को स्वीकार नहीं करता है।
उदाहरण
प्रदर्शित करने के लिए यहां एक बुनियादी उदाहरण दिया गया है।
SELECT timeofday();
परिणाम:
Thu Jul 02 10:00:27.068776 2020 AEST
एकाधिक कॉल
जब आप किसी एकल SQL कथन में फ़ंक्शन को कई बार कॉल करते हैं, तो परिणाम कैसे भिन्न हो सकते हैं, यह प्रदर्शित करने के लिए यहां एक बुनियादी उदाहरण दिया गया है।
\x
SELECT
timeofday(),
pg_sleep(5),
timeofday(),
pg_sleep(3),
timeofday();
परिणाम (ऊर्ध्वाधर आउटपुट का उपयोग करके):
timeofday | Thu Jul 02 10:02:23.060770 2020 AEST pg_sleep | timeofday | Thu Jul 02 10:02:28.131195 2020 AEST pg_sleep | timeofday | Thu Jul 02 10:02:31.192749 2020 AEST
यहाँ, मैंने pg_sleep()
. का उपयोग किया है कई सेकंड के लिए निष्पादन में देरी करने के लिए कार्य। पहली कॉल 5 सेकंड के लिए निष्पादन में देरी करती है और दूसरी कॉल 3 सेकंड के लिए निष्पादन में देरी करती है।
हम देख सकते हैं कि हर बार timeofday()
कहा जाता था, वास्तविक समय थोड़ा अलग था। यह ज्यादातर pg_sleep()
. के कारण होता है फ़ंक्शन, हालांकि यह इसके बिना थोड़ा भिन्न भी हो सकता है, यह इस पर निर्भर करता है कि क्वेरी कितनी तेजी से चलती है।
यहाँ यह फिर से बिना pg_sleep()
के है कॉल।
SELECT
timeofday(),
timeofday(),
timeofday();
परिणाम (ऊर्ध्वाधर आउटपुट का उपयोग करके):
timeofday | Thu Jul 02 10:03:26.044065 2020 AEST timeofday | Thu Jul 02 10:03:26.044076 2020 AEST timeofday | Thu Jul 02 10:03:26.044080 2020 AEST
परिणामों को पढ़ने में आसान बनाने के लिए ये उदाहरण लंबवत आउटपुट (आमतौर पर psql में विस्तारित डिस्प्ले कहा जाता है) का उपयोग करते हैं।
आप \x
. के साथ psql में विस्तारित डिस्प्ले को टॉगल कर सकते हैं ।