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

'कॉपी .. टू ..' के दौरान किसी दिए गए समय क्षेत्र के लिए टाइमस्टैम्प को स्थानीय समय में बदलें

सबसे पहले, आपको timestamptz . का उपयोग करना चाहिए timestamp . के बजाय जब भी कई बार ज़ोन के साथ काम करना। समस्या से पूरी तरह बचेंगे।

विवरण:

आप कर सकते हैं AT TIME ZONE का उपयोग करें @NuLo सुझाव जैसा निर्माण करें , यह हो सकता है यहां तक ​​कि काम भी करते हैं, लेकिन ठीक वैसा नहीं जैसा वर्णित किया गया है।

AT TIME ZONE timestamp . प्रकार को रूपांतरित करता है (timestamp without time zone ) से timestamptz . तक (timestamp with time zone ) और इसके विपरीत। पाठ्य प्रस्तुतिकरण एक timestamptz . का मान वर्तमान सेटिंग . पर निर्भर करता है उस सत्र में समय क्षेत्र का जिसमें आप कमांड चलाते हैं। ये दो timestamptz मान 100% समान हैं (समय में एक ही बिंदु को इंगित करें):

'2015-09-02 15:55:00+02'::timestamptz
'2015-09-02 14:55:00+01'::timestamptz

लेकिन टेक्स्ट प्रतिनिधित्व नहीं है . डिस्प्ले अलग-अलग टाइम ज़ोन के लिए है। अगर आप इस स्ट्रिंग को अक्षरशः लेते हैं और इसे timestamp . पर फीड करते हैं टाइप करें, समय क्षेत्र का हिस्सा बस अनदेखा है और आप भिन्न . के साथ समाप्त होते हैं मूल्य। इसलिए, यदि आप अपना COPY चलाते हैं आपके मूल timestamp . के समान समय क्षेत्र सेटिंग वाले सत्र में विवरण मान के लिए हैं, सुझाया गया ऑपरेशन होता है काम करने के लिए।

हालांकि, साफ-सुथरा तरीका सही timestamp . उत्पन्न करना है AT TIME ZONE . लागू करने से शुरू होने वाले मान दो बार :

SELECT event AT TIME ZONE 'my_target_tz' AT TIME ZONE 'my_source_tz', ...
FROM   logtable
ORDER  BY event desc;

'my_target_tz' "आपका अपना समय क्षेत्र" और 'my_source_tz' . है उदाहरण में क्लाउड सर्वर का समय क्षेत्र। यह सुनिश्चित करने के लिए कि डीएसटी का सम्मान किया जाता है समय क्षेत्र के नाम . का उपयोग करें , समय क्षेत्र के संक्षिप्त रूप नहीं। दस्तावेज:

संबंधित:

या, और भी बेहतर, 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. जेपीए 2 @SequenceGenerator @GeneratedValue अद्वितीय बाधा उल्लंघन पैदा कर रहा है

  2. पहली तालिका में विदेशी कुंजी

  3. जाँच करें कि क्या डेटाबेस शेल का उपयोग करके PostgreSQL में मौजूद है

  4. मैं Django ArrayField की लंबाई कैसे पूछूं?

  5. PostgreSQL में एक फ़ंक्शन से वापसी तालिका प्रकार