PostgreSQL
 sql >> डेटाबेस >  >> RDS >> PostgreSQL

कैसे LocalTime () PostgreSQL में काम करता है

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 में विस्तारित आउटपुट को टॉगल कर सकते हैं ।


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. बड़ी मात्रा में डेटा के लिए PostgreSQL को स्केल करना

  2. PostgreSQL:'मिनट के हिसाब से' क्वेरी के लिए पंक्तियों की गिनती चल रही है

  3. पोस्टग्रेज:त्रुटि:कैश्ड योजना को परिणाम प्रकार नहीं बदलना चाहिए

  4. बाधा परिभाषित आस्थगित प्रारंभ में तत्काल अभी भी आस्थगित है?

  5. Psycopg2 अजगर पुस्तकालय के साथ SQL गतिशील क्वेरी का निर्माण करें और अच्छे रूपांतरण प्रकार के टूल का उपयोग करें