PostgreSQL में, clock_timestamp()
एक गैर-एसक्यूएल-मानक समय फ़ंक्शन है जो वर्तमान दिनांक और समय देता है।
इस फ़ंक्शन का एक महत्वपूर्ण विचार यह है कि इसका परिणाम किसी कथन के निष्पादन के दौरान बदलता रहता है। इसलिए, यदि आप फ़ंक्शन को एक ही स्टेटमेंट में कई बार कॉल करते हैं, तो आपको स्टेटमेंट के अलग-अलग हिस्सों में एक अलग परिणाम मिल सकता है।
सिंटैक्स
सिंटैक्स जितना आसान हो जाता है:
clock_timestamp()
तो यह किसी भी पैरामीटर को स्वीकार नहीं करता है।
उदाहरण
प्रदर्शित करने के लिए यहां एक बुनियादी उदाहरण दिया गया है।
SELECT clock_timestamp();
परिणाम:
2020-07-01 09:53:22.823731+10
एकाधिक कॉल
जब आप किसी एकल SQL कथन में फ़ंक्शन को कई बार कॉल करते हैं, तो परिणाम कैसे भिन्न हो सकते हैं, यह प्रदर्शित करने के लिए यहां एक बुनियादी उदाहरण दिया गया है।
\x
SELECT
clock_timestamp(),
pg_sleep(5),
clock_timestamp(),
pg_sleep(3),
clock_timestamp();
परिणाम (ऊर्ध्वाधर आउटपुट का उपयोग करके):
clock_timestamp | 2020-07-01 09:58:29.744838+10 pg_sleep | clock_timestamp | 2020-07-01 09:58:34.813448+10 pg_sleep | clock_timestamp | 2020-07-01 09:58:37.859197+10
यहाँ, मैंने pg_sleep()
. का उपयोग किया है कई सेकंड के लिए निष्पादन में देरी करने के लिए कार्य। पहली कॉल 5 सेकंड के लिए निष्पादन में देरी करती है और दूसरी कॉल 3 सेकंड के लिए निष्पादन में देरी करती है।
हम देख सकते हैं कि हर बार clock_timestamp()
कहा जाता था, वास्तविक समय थोड़ा अलग था। यह मुख्य रूप से pg_sleep()
. के कारण होता है फ़ंक्शन, लेकिन यह इसके बिना अभी भी भिन्न हो सकता है, यह इस पर निर्भर करता है कि क्वेरी कितनी तेजी से चलती है।
यहाँ यह फिर से बिना pg_sleep()
के है कॉल।
SELECT
clock_timestamp(),
clock_timestamp(),
clock_timestamp();
परिणाम (ऊर्ध्वाधर आउटपुट का उपयोग करके):
clock_timestamp | 2020-07-01 10:03:10.828557+10 clock_timestamp | 2020-07-01 10:03:10.828558+10 clock_timestamp | 2020-07-01 10:03:10.828558+10
परिणामों को पढ़ने में आसान बनाने के लिए ये उदाहरण लंबवत आउटपुट (आमतौर पर psql में विस्तारित डिस्प्ले कहा जाता है) का उपयोग करते हैं।
आप \x
. के साथ psql में विस्तारित डिस्प्ले को टॉगल कर सकते हैं ।