PostgreSQL में, localtime
फ़ंक्शन समय क्षेत्र ऑफ़सेट के बिना, दिन का स्थानीय समय लौटाता है।
यदि आपको समय क्षेत्र ऑफ़सेट की आवश्यकता है, तो current_time()
use का उपयोग करें इसके बजाय।
सिंटैक्स
आप इसे निम्न में से किसी भी तरीके से उपयोग कर सकते हैं:
localtime
localtime(x)
जहां x
एक वैकल्पिक सटीक पैरामीटर है, जिसके कारण परिणाम को x
. पर गोल कर दिया जाता है सेकंड फ़ील्ड में भिन्नात्मक अंकों की संख्या।
एक सटीक पैरामीटर (पहला सिंटैक्स) के बिना, परिणाम पूर्ण उपलब्ध सटीकता के लिए दिया जाता है।
उदाहरण - पूर्ण परिशुद्धता
पूर्ण उपलब्ध सटीकता का उपयोग करके परिणाम प्रदर्शित करने के लिए यहां एक बुनियादी उदाहरण दिया गया है।
SELECT localtime;
परिणाम:
15:50:25.314626
उदाहरण - विशिष्ट परिशुद्धता
सटीकता निर्दिष्ट करने का तरीका दिखाने के लिए यहां एक उदाहरण दिया गया है।
SELECT localtime(0);
परिणाम:
15:50:44
इस उदाहरण में, मैंने शून्य की सटीकता निर्दिष्ट की, जिसका अर्थ है कि कोई भी आंशिक सेकंड वापस नहीं किया गया।
यहां एक और उदाहरण दिया गया है जहां मैं कई भिन्न सेकंड निर्दिष्ट करता हूं।
SELECT localtime(3);
परिणाम:
15:50:59.039
लेन-देन
वास्तविक समय वर्तमान लेनदेन के प्रारंभ समय पर आधारित होता है। इसलिए, लेन-देन की प्रगति के रूप में यह नहीं बदलता है।
यह एकल लेन-देन को "वर्तमान" समय की एक सुसंगत धारणा रखने की अनुमति देता है, ताकि एक ही लेन-देन के भीतर कई संशोधनों में एक ही समय की मुहर लगे।
यहां एक उदाहरण दिया गया है जो इसे प्रदर्शित करता है।
BEGIN;
SELECT localtime;
SELECT pg_sleep(5);
SELECT localtime;
SELECT pg_sleep(5);
SELECT localtime;
COMMIT;
psql में उस लेन-देन को निष्पादित करते समय मेरे टर्मिनल का पूरा आउटपुट यहां दिया गया है:
postgres=# BEGIN; BEGIN postgres=# SELECT localtime; localtime ----------------- 09:22:40.096909 (1 row) postgres=# SELECT pg_sleep(5); pg_sleep ---------- (1 row) postgres=# SELECT localtime; localtime ----------------- 09:22:40.096909 (1 row) postgres=# SELECT pg_sleep(5); pg_sleep ---------- (1 row) postgres=# SELECT localtime; localtime ----------------- 09:22:40.096909 (1 row) postgres=# COMMIT; COMMIT
सभी तीन समय मान समान हैं, भले ही pg_sleep()
लेन-देन के भीतर प्रत्येक कथन के बीच निष्पादन में देरी के लिए फ़ंक्शन का उपयोग किया गया था।
यह statement_timestamp()
. के विपरीत है जो करता है प्रत्येक कथन के साथ बदलें।
एक स्टेटमेंट में कई कॉल
कथन के आगे बढ़ने पर यह भी नहीं बदलता है।
\x
SELECT
localtime,
pg_sleep(5),
localtime,
pg_sleep(5),
localtime;
परिणाम (ऊर्ध्वाधर आउटपुट का उपयोग करके):
localtime | 09:23:45.108559 pg_sleep | localtime | 09:23:45.108559 pg_sleep | localtime | 09:23:45.108559
सभी तीन समय मान समान हैं, भले ही pg_sleep()
फ़ंक्शन का उपयोग प्रत्येक कॉल के बीच localtime
. के निष्पादन में देरी करने के लिए किया गया था ।
यह clock_timestamp()
. के विपरीत है फ़ंक्शन, जो करता है कथन के माध्यम से आगे बढ़ने पर इसे बदलें।
वैसे, मैंने परिणामों को थोड़ा अधिक कॉम्पैक्ट बनाने के लिए लंबवत आउटपुट (विस्तारित आउटपुट के रूप में भी जाना जाता है) का उपयोग किया।
आप \x
. का उपयोग करके psql में विस्तारित आउटपुट को टॉगल कर सकते हैं ।