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

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

PostgreSQL में, statement_timestamp() फ़ंक्शन वर्तमान विवरण की शुरुआत में वर्तमान दिनांक और समय (समय क्षेत्र ऑफ़सेट सहित) देता है।

फ़ंक्शन किसी भी पैरामीटर को स्वीकार नहीं करता है, इसलिए आप इसकी सटीकता निर्दिष्ट नहीं कर सकते।

साथ ही, statement_timestamp() एक गैर-एसक्यूएल-मानक फ़ंक्शन है।

सिंटैक्स

वाक्य रचना इस प्रकार है:

statement_timestamp()

किसी तर्क की आवश्यकता नहीं है या स्वीकार नहीं है।

मूल उदाहरण

प्रदर्शित करने के लिए यहां एक बुनियादी उदाहरण दिया गया है।

SELECT statement_timestamp();

परिणाम:

2020-07-02 09:30:45.46903+10

लेन-देन के भीतर

लेन-देन में यह कैसे काम करता है, यह दिखाने के लिए यहां एक उदाहरण दिया गया है।

BEGIN;
SELECT statement_timestamp();
SELECT pg_sleep(5);
SELECT statement_timestamp();
SELECT pg_sleep(5);
SELECT statement_timestamp();
COMMIT;

यहाँ psql का उपयोग करते समय मेरे टर्मिनल के भीतर पूरा आउटपुट दिया गया है:

postgres=# BEGIN;
BEGIN
postgres=# SELECT statement_timestamp();
      statement_timestamp      
-------------------------------
 2020-07-02 09:31:13.363128+10
(1 row)


postgres=# SELECT pg_sleep(5);
 pg_sleep 
----------
 
(1 row)


postgres=# SELECT statement_timestamp();
      statement_timestamp      
-------------------------------
 2020-07-02 09:31:18.424503+10
(1 row)


postgres=# SELECT pg_sleep(5);
 pg_sleep 
----------
 
(1 row)


postgres=# SELECT statement_timestamp();
      statement_timestamp      
-------------------------------
 2020-07-02 09:31:23.501539+10
(1 row)


postgres=# COMMIT;
COMMIT

इस उदाहरण में मैंने pg_sleep() . का उपयोग किया है प्रत्येक कथन के बीच निष्पादन में देरी करने के लिए कार्य करता है।

क्योंकि प्रत्येक statement_timestamp() कॉल अपने स्वयं के SQL कथन में था, लौटाया गया टाइमस्टैम्प प्रत्येक कॉल के साथ अलग था।

यह transaction_timestamp() . के विपरीत है , जो नहीं प्रत्येक कथन के साथ बदलें। यह लेन-देन के प्रारंभ समय के आधार पर अपना टाइमस्टैम्प लौटाता है।

एक स्टेटमेंट में कई कॉल

यहां एक उदाहरण दिया गया है कि क्या होता है यदि हम तीनों फ़ंक्शन कॉल को एक एकल SQL कथन में संयोजित करते हैं।

\x
SELECT 
  statement_timestamp(),
  pg_sleep(5),
  statement_timestamp(),
  pg_sleep(5),
  statement_timestamp();

परिणाम (ऊर्ध्वाधर आउटपुट का उपयोग करके):

statement_timestamp | 2020-07-02 09:34:41.06911+10
pg_sleep            | 
statement_timestamp | 2020-07-02 09:34:41.06911+10
pg_sleep            | 
statement_timestamp | 2020-07-02 09:34:41.06911+10

इस बार, सभी तीन टाइमस्टैम्प मान समान हैं, भले ही pg_sleep() फ़ंक्शन का उपयोग प्रत्येक कॉल के बीच statement_timestamp() . के निष्पादन में देरी करने के लिए किया गया था ।

यह clock_timestamp() . के विपरीत है फ़ंक्शन, जो कथन के माध्यम से आगे बढ़ने पर भी बदलता है (यदि कथन के भीतर कई बार कहा जाता है)।


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. JSON प्रकार के अंदर सरणी तत्वों के लिए क्वेरी

  2. PostgreSQL में पैटर्न मिलान करते समय स्ट्रिंग से कैसे बचें

  3. PostgreSQL के EXPLAIN ANALYZE का MySQL समतुल्य क्या है?

  4. PostgreSQL डेटाबेस के साथ वेब ऐप में पूर्ण ऑफ़लाइन कार्यक्षमता कैसे प्राप्त करें?

  5. पोस्टग्रेज - आसन्न सूची को नेस्टेड JSON ऑब्जेक्ट में बदलें