यह मुद्दा अमेज़ॅन आरडीएस से असंबंधित लगता है:इसे पोस्टग्रेएसक्यूएल द्वारा उपयोग किए जाने वाले सम्मेलन के साथ करना है। इस मामले में, आप करते हैं समय क्षेत्र का नाम . है पीछे की ओर। आपका मतलब है 'UTC-01'
जहाँ आप <स्ट्राइक>'UTC+01'
लिखते हैं स्ट्राइक> .
मैनुअल :
तो समय क्षेत्र स्ट्रिंग SET TIME ZONE
के लिए उपयोग किया जाता है (और SHOW timezone
. का प्रदर्शन , तदनुसार) या AT TIME ZONE
निर्माण विपरीत चिह्न . का उपयोग करें timestamp
में जो दिखाया गया है उसका (with time zone
) शाब्दिक! यह एक ओर ISO और SQL मानक और दूसरी ओर POSIX के बीच एक बहुत ही दुर्भाग्यपूर्ण असहमति है। (मुझे लगता है कि पॉज़िक्स को दोष देना है।) देखें:
लेकिन 'CET'
या 'UTC-01'
दोनों अब भी संभावित रूप से गलत हैं पेरिस के लिए क्योंकि वे डेलाइट सेविंग टाइम . के लिए नियम नहीं ले रहे हैं खाते में।
(डीएसटी मानव जाति के इतिहास में सबसे नैतिक अवधारणाओं में से एक है।)
पेरिस (अधिकांश यूरोप की तरह) सर्दियों के दौरान सीईटी और गर्मियों के दौरान सीईएसटी का उपयोग करता है। 'CET'
. के साथ आपके परीक्षण बस नवंबर में काम करने के लिए होता है। अगर आप गर्मी के दिनों में भी यही कोशिश करते हैं, तो आपको गलत परिणाम मिलता है।
सुरक्षित रहने के लिए, हमेशा समय क्षेत्र नाम . का उपयोग करें 'Europe/Paris'
, जो डीएसटी नियमों पर विचार करता है। कॉल अधिक महंगी है।
फ़ंक्शन current_time
यदि आपकी समय क्षेत्र सेटिंग का कोई अर्थ है, तो डीएसटी नियमों को ध्यान में रखता है। लेकिन 'UTC-01'
एक सादा समय ऑफसेट है। मैं कभी भी डेटा प्रकार time with time zone
का उपयोग नहीं करता हूं या current_time
शुरुआत के लिए। मैनुअल एक बार फिर:
विचार करें:
SELECT '2016-06-06 00:00+0'::timestamptz AT TIME ZONE 'UTC+01' AS plus_wrong
, '2016-06-06 00:00+0'::timestamptz AT TIME ZONE 'UTC-01' AS minus_right
SELECT '2016-01-01 00:00+0'::timestamptz AT TIME ZONE 'CET' AS cet_winter
, '2016-06-06 00:00+0'::timestamptz AT TIME ZONE 'CEST' AS cest_summer
, '2016-06-06 00:00+0'::timestamptz AT TIME ZONE 'CET' AS cet_no_dst -- CET wrong!
SELECT '2016-06-06 00:00+0'::timestamptz AT TIME ZONE 'Europe/Paris' AS paris_summer
, '2016-01-01 00:00+0'::timestamptz AT TIME ZONE 'Europe/Paris' AS paris_winter
संबंधित:
-
रेल में समय क्षेत्र को पूरी तरह से अनदेखा करना और पोस्टग्रेएसक्यूएल
-
समय टाइमस्टैम्प पर लागू करने पर समान गुणों वाले ज़ोन के नाम अलग परिणाम देते हैं
-
डेटा टाइप में टाइम ज़ोन स्टोरेज "टाइमस्टैम्प के साथ समय क्षेत्र"