दिनांक/समय प्रकारों के लिए अंतर पोस्टग्रेएसक्यूएल दस्तावेज़ीकरण में शामिल हैं। हाँ, TIME
. का उपचार या TIMESTAMP
एक WITH TIME ZONE
के बीच भिन्न होता है या WITHOUT TIME ZONE
. यह प्रभावित नहीं करता कि मूल्यों को कैसे संग्रहीत किया जाता है; यह प्रभावित करता है कि उनकी व्याख्या कैसे की जाती है।
इन डेटा प्रकारों पर समय क्षेत्र के प्रभाव को विशेष रूप से डॉक्स में शामिल किया गया है। अंतर इस बात से उत्पन्न होता है कि सिस्टम मूल्य के बारे में उचित रूप से क्या जान सकता है:
-
मूल्य के हिस्से के रूप में समय क्षेत्र के साथ, ग्राहक में स्थानीय समय के रूप में मूल्य प्रदान किया जा सकता है।
-
मान के हिस्से के रूप में समय क्षेत्र के बिना, स्पष्ट डिफ़ॉल्ट समय क्षेत्र यूटीसी है, इसलिए इसे उस समय क्षेत्र के लिए प्रस्तुत किया जाता है।
व्यवहार कम से कम तीन कारकों के आधार पर भिन्न होता है:
- क्लाइंट में समय क्षेत्र सेटिंग।
- डेटा प्रकार (यानी
WITH TIME ZONE
याWITHOUT TIME ZONE
) मूल्य का। - क्या मान किसी विशेष समय क्षेत्र के साथ निर्दिष्ट किया गया है।
यहां उन कारकों के संयोजन को शामिल करने वाले उदाहरण दिए गए हैं:
foo=> SET TIMEZONE TO 'Japan';
SET
foo=> SELECT '2011-01-01 00:00:00'::TIMESTAMP;
timestamp
---------------------
2011-01-01 00:00:00
(1 row)
foo=> SELECT '2011-01-01 00:00:00'::TIMESTAMP WITH TIME ZONE;
timestamptz
------------------------
2011-01-01 00:00:00+09
(1 row)
foo=> SELECT '2011-01-01 00:00:00+03'::TIMESTAMP;
timestamp
---------------------
2011-01-01 00:00:00
(1 row)
foo=> SELECT '2011-01-01 00:00:00+03'::TIMESTAMP WITH TIME ZONE;
timestamptz
------------------------
2011-01-01 06:00:00+09
(1 row)
foo=> SET TIMEZONE TO 'Australia/Melbourne';
SET
foo=> SELECT '2011-01-01 00:00:00'::TIMESTAMP;
timestamp
---------------------
2011-01-01 00:00:00
(1 row)
foo=> SELECT '2011-01-01 00:00:00'::TIMESTAMP WITH TIME ZONE;
timestamptz
------------------------
2011-01-01 00:00:00+11
(1 row)
foo=> SELECT '2011-01-01 00:00:00+03'::TIMESTAMP;
timestamp
---------------------
2011-01-01 00:00:00
(1 row)
foo=> SELECT '2011-01-01 00:00:00+03'::TIMESTAMP WITH TIME ZONE;
timestamptz
------------------------
2011-01-01 08:00:00+11
(1 row)