आपकी दोनों धारणाएं गलत हैं:
PostgreSQL एक timestamp with time zone
स्टोर करता है 8-बाइट पूर्णांक के रूप में जिसमें 2000-01-01 00:00:00 UTC
. से ऑफ़सेट शामिल है माइक्रोसेकंड में।
तो यह न तो समय क्षेत्र को संग्रहीत करता है, न ही सटीक 1 मिनट।
एक स्ट्रिंग में रूपांतरण पर, टाइमस्टैम्प को timezone
की वर्तमान सेटिंग के अनुसार स्वरूपित किया जाता है पैरामीटर।
इसलिए यदि आपको समय क्षेत्र को अलग से संग्रहीत करना है यदि आपको इसे याद रखने की आवश्यकता है और AT TIME ZONE
का उपयोग करें टाइमस्टैम्प को उचित समय क्षेत्र में बदलने के लिए अभिव्यक्ति।
आप दस्तावेज़ीकरण संदर्भ मांगते हैं। इसका एक हिस्सा है यहां :
/*
* Timestamp represents absolute time.
[...]
* Timestamps, as well as the h/m/s fields of intervals, are stored as
* int64 values with units of microseconds. (Once upon a time they were
* double values with units of seconds.)
उसी फ़ाइल में, आप पाते हैं
/* Julian-date equivalents of Day 0 in Unix and Postgres reckoning */
#define UNIX_EPOCH_JDATE 2440588 /* == date2j(1970, 1, 1) */
#define POSTGRES_EPOCH_JDATE 2451545 /* == date2j(2000, 1, 1) */