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

संदर्भ समय क्षेत्र के रूप में उपयोग करने के लिए एक समय क्षेत्र निर्दिष्ट करें

आपको इसके अतिरिक्त समय क्षेत्र ऑफ़सेट भी सहेजना होगा timestamp . के लिए .

जैसा कि @Milen ने पहले ही समझाया है (और मैनुअल से जुड़ा हुआ है ):एक timestamp केवल समय में एक बिंदु बचाता है (सार मूल्य के रूप में)। समय क्षेत्र संशोधक नहीं है सहेजा गया है, यह केवल timestamp . को समायोजित करने का कार्य करता है UTC . के सापेक्ष ।

निम्नलिखित डेमो पर विचार करें:

-- DROP TABLE tbl;
CREATE TEMP TABLE tbl (id int, myts timestamptz, mytz interval);

INSERT INTO tbl VALUES
 (1, now()                , EXTRACT (timezone from now()) * interval '1s')
,(2, '2012-01-01 00:00-05', interval '-5h')
,(3, '2012-01-01 00:00+04', interval '4h')
,(4, '2012-11-11 20:30+03', interval '3h');

SELECT *
      ,(myts AT TIME ZONE mytz)::text
       || CASE WHEN mytz > '0:0' THEN '+' ELSE '' END
       || to_char(mytz, 'FMHH24:mi') AS timestamp_at_origin
FROM tbl;

इसे देखने के लिए स्थानीय रूप से चलाएं। <के विवरण पर विशेष ध्यान दें मजबूत>समय क्षेत्र में निर्माण, और मैं कैसे समय क्षेत्र को (स्थानीय!) timestamp with time zone . से निकालता हूं .
now() रिटर्न timestamp with time zone या timestamptz संक्षेप में।

EXTRACT (timezone from now()) * interval '1s'

timestamp_at_origin समय क्षेत्र के साथ टाइमस्टैम्प प्रदर्शित करता है जैसा कि इसके मूल में देखा गया है। अगर मैं आपका प्रश्न समझ गया, तो आप यही खोज रहे हैं।
आप स्वरूपण में और सुधार कर सकते हैं।

आपको इस संबंधित प्रश्न में रुचि हो सकती है जो समय क्षेत्रों की अस्पष्टताओं और कमियों पर कुछ प्रकाश डालता है।



  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, Npgsql 42601 लौटा रहा है:सिंटैक्स त्रुटि $ 1 . पर या उसके पास

  2. निर्दिष्ट निर्देशांक से 5 मील की सीमा में सभी भवन प्राप्त करना

  3. एक चलती औसत बनाने के लिए SQLAlchemy में उपश्रेणियों का उपयोग कैसे करें?

  4. पोस्टग्रेज:जावा से कस्टम प्रकारों को पोस्टग्रेज फंक्शन में पास करना

  5. पोस्टग्रेज डेटाटाइम से सेकंड कैसे घटाएं?