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

jOOQ टाइमस्टैम्प स्थानीय टाइमज़ोन ऑफ़सेट के साथ संग्रहीत किया जा रहा है

दुर्भाग्य से कुछ चीजें आपके खिलाफ काम कर रही हैं:

  1. Postgres सत्र में PostgreSQL JDBC ड्राइवर आपके JVM टाइमज़ोन में टाइमज़ोन सेट करता है। तो भले ही आपका डेटाबेस सर्वर यूटीसी में चल रहा हो, आपके जेवीएम के समय क्षेत्र का उपयोग करके एक टाइमस्टैम्प फ़ील्ड डाला जाएगा। जब आप डेटा डालते हैं या क्वेरी करते हैं तो डेटाबेस सर्वर हमेशा JVM समय क्षेत्र का उपयोग करेगा।
  2. आप TIMESTAMPTZ के बजाय TIMESTAMP का उपयोग कर रहे हैं। इन प्रकारों का विवरण उनके वास्तविक उपयोग को नहीं दर्शाता है। TIMESTAMPTZ वास्तव में समय क्षेत्र अज्ञेयवादी है। आप जो भी मूल्य डालेंगे, उसे सत्र समयक्षेत्र का उपयोग करके यूटीसी में समायोजित किया जाएगा।

इन दो मुद्दों के कारण, यदि आपके पास दो अलग-अलग जेवीएम हैं - एक लॉस एंजिल्स समय का उपयोग कर रहा है और दूसरा न्यूयॉर्क समय का उपयोग कर रहा है - जब भी आप एक जेवीएम के साथ टाइमस्टैम्प लिखते हैं तो यह दूसरे जेवीएम में एक अलग "यूटीसी समय" होगा। TIMESTAMP समायोजित मान लेता है और दिए गए अनुसार इसका उपयोग करता है। यदि आप अपने TIMESTAMP कॉलम को TIMESTAMPTZ में बदलते हैं तो दोनों JVM में एक ही समय हमेशा एक ही UTC समय होगा।

यदि आप पोस्टग्रेज JDBC ड्राइवर के ConnectionFactoryImpl#openConnectionImp को देखते हैं तो आप देख सकते हैं कि यह आपके स्थानीय JVM के समय क्षेत्र को डेटाबेस सर्वर के सत्र क्षेत्र के लिए समय क्षेत्र के रूप में कहाँ सेट करता है।

तो इससे निपटने का एकमात्र समझदार तरीका केवल TIMESTAMPTZ के बजाय TIMESTAMPTZ का उपयोग करना है। इसके बारे में कुछ और जानकारी यहां दी गई है:

PostgreSQL/JDBC और TIMESTAMP बनाम TIMESTAMPTZ

http://justatheory.com/computers/databases/postgresql/use-timestamptz .html



  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. Django:अधिकतम टाइमस्टैम्प वाले मानों का चयन करें या उसी तालिका में शामिल हों

  3. पोस्टग्रेज में एक जटिल नेस्टेड संरचना से एक विशिष्ट कुंजी नाम के साथ जसन तत्वों को पुनः प्राप्त करना

  4. सेल.जेएस संबंधों द्वारा ब्लूप्रिंट क्वेरी

  5. PostgreSQL दो jsonb वस्तुओं की तुलना करता है