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

स्थानीय समय को UTC में कैसे बदलें?

यह मैनुअल , लेकिन यह हमेशा स्पष्ट नहीं होता है कि वास्तव में दिनांक/समय के साथ कैसे काम किया जाए। SQL युक्ति थोड़ी विचित्र है।

आपके प्रश्न के मामले में यह स्पष्ट नहीं है कि आप समय को यूटीसी में संग्रहित करना चाहते हैं या नहीं, लेकिन इसे सर्वर के स्थानीय समय में प्रदर्शित करें (TimeZone ), या आप TimeZone . को नज़रअंदाज़ करना चाहते हैं या नहीं और इसे हमेशा यूटीसी के रूप में प्रदर्शित करें। मैं बाद वाला मान लूंगा।

टाइमस्टैम्प के लिए आपको बस AT TIME ZONE . का उपयोग करना होगा दो बार, जैसे:

SELECT TIMESTAMP '2013-08-13 00:00:00' AT TIME ZONE 'Australia/Sydney' AT TIME ZONE 'UTC';

आपको AT TIME ZONE use का उपयोग करना होगा दो बार। एक बार इनपुट को कन्वर्ट करने के लिए timestamp करने के लिए timestamptz तर्क टाइमज़ोन के अनुसार, फिर दूसरा उसे timestamp . में बदलने के लिए यूटीसी पर।

दुर्भाग्य से (IMO पागल) तरीके से SQL युक्ति AT TIME ZONE . को परिभाषित करती है TIME . के लिए , आप वही काम TIME . के लिए नहीं कर सकते . आपको TimeZone में हेरफेर करना होगा इसके बजाय चर:

SET TimeZone = 'UTC';
SELECT TIME '07:00' AT TIME ZONE 'Australia/Sydney';

यह अभी भी आपको एक timetz . के साथ छोड़ देता है TIME नहीं . तो इसका प्रदर्शन मान timezone . के साथ बदल जाता है सेटिंग।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. क्या मुझे पोस्टग्रेएसक्यूएल में इनहेरिटेंस डिजाइन करने के लिए टाइप कॉलम जोड़ना चाहिए?

  2. स्पार्क एसक्यूएल डेटाफ्रेम के साथ कार्यक्षमता हटाएं

  3. Psql का उपयोग करके PostgreSQL में डेटाबेस और तालिकाओं को कैसे सूचीबद्ध करें

  4. varchar के लिए array_agg () का उपयोग कैसे करें []

  5. मैं Django में एक मॉडल के लिए दैनिक रैंकिंग कैसे रिकॉर्ड करूं?