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

PostgreSQL में समय क्षेत्र के साथ/बिना टाइमस्टैम्प के बीच अंतर

दिनांक/समय प्रकारों के लिए अंतर पोस्टग्रेएसक्यूएल दस्तावेज़ीकरण में शामिल हैं। हाँ, 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)


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. आप Postgres . में अपनी सभी तालिकाओं के लिए पंक्ति गणना कैसे प्राप्त करते हैं?

  2. LIMIT लागू होने से पहले परिणाम गणना प्राप्त करने का सबसे अच्छा तरीका

  3. PostgreSQL के लिए pgModeler का अवलोकन

  4. PostgreSQL में AVG () फ़ंक्शन

  5. PostgreSQL में दोष सहिष्णुता का विकास:प्रतिकृति चरण