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

समय क्षेत्र डेलाइट बचत के साथ समय डालें

उचित तरीका समय क्षेत्र के साथ समय का उपयोग नहीं करना है (समय . के बीच की जगह पर ध्यान दें और क्षेत्र ) बिल्कुल, क्योंकि यह डिज़ाइन द्वारा तोड़ा गया है। यह SQL मानक में है, इसलिए Postgres प्रकार का समर्थन करता है - लेकिन सलाह देता है नहीं इसके प्रयेाग के लिए। इस संबंधित उत्तर में और अधिक:

चूँकि आपको DST से समस्या हो रही है , timetz (संक्षिप्त नाम) एक विशेष रूप से खराब विकल्प है। यह डीएसटी से निपटने के लिए अपर्याप्त है। यह बताना असंभव है कि 8:00:00 सर्दी या गर्मी के समय में है।

समय क्षेत्र के साथ टाइमस्टैम्प का उपयोग करें (टिमस्टाम्प्ट्ज़ ) बजाय। आप हमेशा दिनांक भाग को त्याग सकते हैं। बस start_time::time . का उपयोग करें स्थानीय . प्राप्त करने के लिए timestamptz . से समय . या AT TIME ZONE अपने समय क्षेत्र में स्थानांतरित करने के लिए।

आम तौर पर, डीएसटी को अपने आप ध्यान में रखना , समय क्षेत्र नाम . का उपयोग करें एक समय क्षेत्र संक्षेप के बजाय। इस संबंधित प्रश्न और उत्तर में अधिक स्पष्टीकरण:

आपके विशेष मामले में, आप शायद अमेरिका/लॉस_एंजेल्स . का उपयोग कर सकते हैं (उदाहरण के साथ timestamptz ):

INSERT INTO mytable(start_time, end_time)
VALUES
   ('1970-01-01 08:00:00 America/Los_Angeles'
  , '1970-01-01 18:00:00 America/Los_Angeles')

मैंने इसे जाँच कर पाया:

SELECT * FROM pg_timezone_names 
WHERE  utc_offset = '-07:00'
AND    is_dst;

समय क्षेत्र प्रबंधन के बारे में मूल बातें:



  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. पोस्टग्रेज में चयन करें, एक कॉलम सबक्वायरी को सरणी के रूप में वापस करें?

  4. वर्ष श्रेणी के अनुसार वर्षों की वापसी सरणी

  5. sqlalchemy से COUNT प्राप्त करना