बिना टाइमजोम के पोस्टग्रेसेल के टाइमस्टैम्प में यूनिक्स समय कैसे बदलें?


17

मेरे पास एक PostgreSQL डेटाबेस एक सर्वर पर चल रहा है, जिसका समय क्षेत्र भारत के टाइम ज़ोन पर सेट है (यानी UTC +5: 30)

मेरे पास तालिका में कुछ डेटा है जो इस तरह बनाया गया है:

CREATE TABLE "CLOUDDATA"
(
  "CD_Tm_Obs" timestamp without time zone,
  "CD_Avg_Cloud" double precision
)

मैं डेटा को क्वेरी करना चाहता हूं और विशिष्ट समय के लिए मान प्राप्त करना चाहता हूं। मेरा इनपुट एक यूनिक्स टाइमस्टैम्प होगा (यानी 1-जनवरी 1970 से सेकंड)

टाइमस्टैम्प मैं यूनिक्स समय को बदलने का एकमात्र तरीका यह है select to_timestamp(TRUNC(CAST(1395036000 AS bigint))):। लेकिन यह टाइमजोन के साथ टाइमस्टैम्प बनाता है। मेरा डेटा अंदर है timestamp without time zone, इसलिए मुझे कोई परिणाम नहीं मिला।

PostgreSQL के टाइमस्टैम्प के बिना यूनिक्स समय को बिना टाइमज़ोम में कैसे बदलें?

जवाबों:


37

यहाँ कुछ दृष्टिकोण हैं:

मैंने आपकी क्वेरी को सरल कर दिया है, क्योंकि आपको इसकी आवश्यकता नहीं होनी चाहिए TRUNC(), न ही CAST()

SELECT to_timestamp(1395036000) AT TIME ZONE 'UTC';

SELECT timestamp '1970-01-01 00:00:00' + interval '1395036000 second';

संदर्भ के लिए, अधिक जानकारी निम्न लिंक पर पाई जा सकती है:


दूसरा स्निपेट RedShift पर भी काम करता है।
गियानलुका कासाटी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.