इसके date_trunc
. के दो प्रकार होने की उम्मीद है :एक timestamp
. के लिए और एक timestamptz
. के लिए , क्योंकि दस्तावेज़
कहते हैं:
क्या आप टाइमस्टैम्प और टाइमस्टैम्प को बेहतर ढंग से समझना चाहते हैं, पहले पढ़ें उत्कृष्ट उत्तर यहाँ ।
फिर लगभग date_trunc
. मेरे प्रयोगों और विभिन्न SO उत्तरों की व्याख्या के अनुसार (जैसे यह एक
), सब कुछ ऐसा व्यवहार करता है जैसे, टाइमस्टैम्प्ज़ प्राप्त करते समय, date_trunc
पहले इसे टाइमस्टैम्प में परिवर्तित करता है। यह रूपांतरण स्थानीय समय में टाइमस्टैम्प लौटाता है। फिर काट-छांट की जाती है:केवल तारीख रखें और घंटे/मिनट/सेकंड कम करें।
इस रूपांतरण से बचने के लिए (धन्यवाद पॉज़), date_trunc को टाइमस्टैम्प (टाइमस्टैम्प नहीं) प्रदान करें:
date_trunc('day', TIMESTAMPTZ '2001-07-16 23:38:40Z' at time zone 'UTC')
भाग at time zone 'UTC'
कहते हैं "इस टाइमस्टैम्प को यूटीसी समय में टाइमस्टैम्प में कनवर्ट करें" (इस रूपांतरण से घंटा प्रभावित नहीं होता है)। फिर date_trunc रिटर्न 2001-07-16 00:00:00
।