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

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

PostgreSQL में, make_timestamp() फ़ंक्शन आपको इसके वर्ष, महीने, दिन, घंटे, मिनट और सेकंड फ़ील्ड से टाइमस्टैम्प बनाने की अनुमति देता है।

सिंटैक्स

फ़ंक्शन में निम्न सिंटैक्स है:

make_timestamp(year int, month int, day int, hour int, min int, sec double precision)

जहां year , month , और day दिनांक के वर्ष, महीने और दिन और hour घंटे का हिस्सा है, min मिनट का हिस्सा है, और sec सेकंड का हिस्सा है।

घंटे और मिनट पूर्णांक . के रूप में दिए गए हैं , सेकंड दोहरी सटीकता . के रूप में प्रदान किए जाते हैं ।

परिणाम टाइमस्टैम्प . के रूप में लौटाया जाता है . अधिक सटीक रूप से, यह बिना समय क्षेत्र के समय . के रूप में लौटा है ।

उदाहरण

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

SELECT make_timestamp(2020, 10, 25, 9, 30, 17.12);

परिणाम:

2020-10-25 09:30:17.12

और हम निम्नलिखित क्वेरी के साथ रिटर्न प्रकार को सत्यापित कर सकते हैं।

SELECT pg_typeof(make_timestamp(2020, 10, 25, 9, 30, 17.12));

परिणाम:

timestamp without time zone

pg_typeof() फ़ंक्शन अपने तर्क का डेटा प्रकार देता है, और इसलिए मैंने make_timestamp() passed पास किया तर्क के रूप में..

सीमा से बाहर

यदि कोई तर्क उसके दिनांक भाग के लिए संभावित मानों की सीमा से बाहर है, तो आपको "सीमा से बाहर" त्रुटि मिलेगी।

SELECT make_timestamp(2020, 13, 25, 9, 30, 17.12);

परिणाम:

ERROR: date field value out of range: 2020-13-25

इस मामले में महीना सीमा से बाहर था, और इसलिए संदेश ने समझाया कि दिनांक फ़ील्ड मान सीमा से बाहर था।

यदि केवल समय फ़ील्ड मान सीमा से बाहर है, तो त्रुटि उसी के अनुसार लिखी जाती है।

SELECT make_timestamp(2020, 10, 25, 25, 30, 17.12);

परिणाम:

ERROR: time field value out of range: 25:30:17.12

स्ट्रिंग्स को तर्क के रूप में पास करना

Postgres दस्तावेज़ीकरण में कहा गया है कि तर्क पूर्णांक होना चाहिए (और seconds तर्क), लेकिन पासिंग स्ट्रिंग भी काम करती है (शायद इसलिए कि वे पूरी तरह से पूर्णांक में परिवर्तित हो जाते हैं), जब तक कि प्रत्येक तर्क अपनी उचित सीमा के भीतर हो।

SELECT make_timestamp('2020', '12', '25', '10', '30', '17.12');

परिणाम:

2020-12-25 10:30:17.12

फिर से हम pg_type() . का उपयोग कर सकते हैं परिणामी डेटा प्रकार की जांच करने के लिए।

SELECT pg_typeof(make_timestamp('2020', '12', '25', '10', '30', '17.12'));

परिणाम:

timestamp without time zone

हालांकि, आपको अभी भी यह सुनिश्चित करने की आवश्यकता है कि पूर्णांक में परिवर्तित होने के बाद प्रत्येक तर्क मान्य होगा, अन्यथा आपको एक त्रुटि मिलेगी।

SELECT pg_typeof(make_timestamp('2020', '13', '25', '10', '30', '17.12'));

परिणाम:

ERROR: date field value out of range: 2020-13-25

टाइमज़ोन के साथ टाइमस्टैम्प

समय क्षेत्र के साथ टाइमस्टैम्प बनाने के लिए मान, make_timestamptz() . का उपयोग करें समारोह।


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Linux पर PostgreSQL में कॉन्फ़िगरेशन पैरामीटर work_mem

  2. एसक्यूएल स्ट्रिंग्स कॉलम के साथ क्लॉज के बीच

  3. एक सम्मिलित तालिका कॉलम का विशिष्ट योग प्राप्त करें

  4. मैं नए PostgreSQL JSON डेटाटाइप के अंदर फ़ील्ड का उपयोग करके क्वेरी कैसे करूं?

  5. hasMany ने कुछ ऐसा कहा है जो Sequelize.Model . का उदाहरण नहीं है