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

पोस्टग्रेज में टाइम ज़ोन डिफॉल्ट CURRENT_TIMESTAMP के बिना फील्ड टाइमस्टैम्प के लिए जेपीए मॉडल क्लास?

गलत प्रकार

LocalDateTime यहाँ गलत प्रकार है। जैसा कि इसके जावाडोक में बताया गया है, वह वर्ग एक पल का प्रतिनिधित्व नहीं कर सकता है।

उस वर्ग में जानबूझकर समय क्षेत्र या ऑफसेट-से-यूटीसी की कोई अवधारणा नहीं है। तो यह एक तारीख और दिन के समय का प्रतिनिधित्व करता है जैसे "23 जनवरी 2019 को दोपहर", लेकिन यह नहीं पता कि क्या वह टोक्यो, पेरिस या मॉन्ट्रियल में दोपहर है, उदाहरण के लिए, तीन बहुत अलग क्षण कई घंटे अलग हैं। तो यह प्रकार मानक SQL प्रकार के लिए उपयुक्त है TIMESTAMP WITHOUT TIME ZONE - बिना , नहीं साथ

अधिक चर्चा के लिए, देखें:Instant और LocalDateTime में क्या अंतर है?

सही प्रकार

मानक SQL प्रकार के लिए TIMESTAMP WITH TIME ZONE , आपको जावा प्रकारों का उपयोग करना चाहिए Instant , OffsetDateTime , या ZonedDateTime . उन तीनों में से, JDBC 4.2 को केवल दूसरे के लिए समर्थन की आवश्यकता है, OffsetDateTime .

पुनर्प्राप्ति।

OffsetDateTime odt = myResultSet.getObject( … , OffsetDateTime.class ) ;

Postgres से प्राप्त मान हमेशा UTC में रहेगा। SQL मानक इस व्यवहार को निर्दिष्ट नहीं करता है, इसलिए डेटाबेस भिन्न होते हैं। Postgres में TIMESTAMP WITH TIME ZONE प्रकार के फ़ील्ड को भेजा गया कोई भी मान यूटीसी में समायोजित किया गया है। पुनर्प्राप्त मान यूटीसी में हैं।

भंडारण।

myPreparedStatement.setObject( … , odt ) ;

यूटीसी (शून्य की ऑफसेट) से किसी विशेष क्षेत्र (एक समय क्षेत्र) के लोगों द्वारा उपयोग किए जाने वाले दीवार-घड़ी के समय में समायोजित करें।

ZoneId z = ZoneId.of( "Asia/Tokyo" ;
ZonedDateTime zdt = odt.atZoneSameInstant( z ) ;

जेपीए

मैं जेपीए का उपयोग नहीं करता, चीजों को सरल रखना पसंद करता हूं।

लेकिन इस उत्तर के अनुसार , जेपीए 2.2 java.time . का समर्थन करता है प्रकार।

हाइबरनेट java.time . का भी समर्थन करता है .




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. मैं क्वेरी निष्पादन समय के psycopg2 लॉगिंग कैसे प्राप्त करूं?

  2. सर्वर टाइमज़ोन ऑफ़सेट मान

  3. पैरामीटर के साथ SQL फ़ंक्शन जो NULL हो सकता है

  4. कैसे IsFinite () PostgreSQL में काम करता है

  5. pgadmin में .sql फ़ाइल आयात करें iii