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

पोस्टग्रेज में डीएसटी के लिए लेखांकन, अनुसूचित वस्तुओं का चयन करते समय

timestamp with time zone का उपयोग करें (timestamptz ) गणना के लिए।
अलार्म का समय time [without time zone] हो सकता है .
लेकिन आपको समय क्षेत्र को बचाना होगा स्पष्ट रूप से प्रत्येक पंक्ति के लिए।

कभी नहीं time with time zone . का उपयोग करें यह तार्किक रूप से टूटा हुआ प्रकार है, इसका उपयोग PostgreSQL द्वारा हतोत्साहित किया जाता है। मैनुअल:

डेमो सेटअप:

CREATE TABLE alarm(name text, t time, tz text);
INSERT INTO alarm VALUES
  ('Alfred', '04:00', 'Europe/Stockholm') -- Alfred sets an alarm for 4 AM.
, ('Lotta',  '05:00', 'Europe/Stockholm') -- Lotta sets an alarm for 5 AM. 
, ('Sharon', '11:00', 'Asia/Singapore');  -- Sharon has set an alarm for 11 AM.

यह समय क्षेत्र होना चाहिए नाम (संक्षिप्त नहीं) डीएसटी के लिए खाते में। संबंधित:

"आज" के लिए मिलते-जुलते अलार्म पाएं:

SELECT *
FROM   alarm
WHERE  (('2012-07-01'::date + t) AT TIME ZONE tz AT TIME ZONE 'UTC')::time
       = '03:00'::time
  • ('2012-7-1'::date + t) ... timestamp [without time zone] इकट्ठा करें बस now()::date + t भी हो सकता है "आज" के लिए।
  • AT WITH TIME ZONE tz ... टाइमस्टैम्प को सहेजे गए समय क्षेत्र पर रखें, जिसके परिणामस्वरूप timestamptz
  • AT WITH TIME ZONE 'UTC' ... UTC के अनुसार प्राप्त करें timestamp
  • ::time ... समय घटक निकालने का सबसे आसान तरीका।

यहां आप समय क्षेत्र के नाम :

SELECT *
FROM   pg_timezone_names
WHERE  name ~~* '%sing%'
LIMIT  10

SQL Fiddle गर्मी / सर्दी का प्रदर्शन।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PostgreSQL में एक तालिका में लापता तिथि जोड़ना

  2. पोस्टग्रेज में सिंगल यूजर मोड में टेबल बनाना

  3. Plpgsql फ़ंक्शन में किसी तालिका के लिए मुख्य फ़ील्ड कैसे प्राप्त करें?

  4. PostgreSQL माउंटेन लायन सॉकेट मुद्दा

  5. PGError का कारण क्या है:FATAL:उसकेोकू पर व्यवस्थापक कमांड के कारण कनेक्शन समाप्त करना?