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

लोकलडेटटाइम, ज़ोनडडेटटाइम और टाइमस्टैम्प

टाइमस्टैम्प Date को बढ़ाता है नैनोसेकंड सटीकता प्रदान करने के लिए। न तो Date न ही Timestamp एक विशिष्ट समय क्षेत्र को ZoneDateTime . के रूप में संदर्भित करने के लिए डिज़ाइन किए गए हैं ।

अगर आपको ZonedDateTime convert कन्वर्ट करने की आवश्यकता है -> Timestamp आपको टाइमज़ोन/ऑफ़सेट जानकारी को त्यागना होगा। उदा.

LocalDateTime withoutTimezone = zoneDateTime.toLocalDateTime();
Timestamp timestamp = Timestamp.valueOf(withoutTimezone));

और Timestamp . में कनवर्ट करने के लिए -> ZonedDateTime आपको एक ऑफ़सेट निर्दिष्ट करने की आवश्यकता है:

LocalDateTime withoutTimezone = sqlTimestamp.toLocalDateTime();
ZonedDateTime withTimezone = withoutTimezone.atZone(ZoneId.of("+03:00"));

या समय क्षेत्र:

ZonedDateTime withTimezone = withoutTimezone.atZone(ZoneId.of("Europe/Paris"));

यदि आपका इरादा ZonedDateTime . को सहेजना है डेटाबेस में वेरिएबल्स और वहां निर्दिष्ट विभिन्न टाइमज़ोन को संरक्षित करते हैं, मैं आपके डेटाबेस को तदनुसार डिजाइन करने की सलाह देता हूं। सुझाव:

  1. एक प्रकार के कॉलम का उपयोग करें DATETIME LocalDateTime save को सेव करने के लिए और एक VARCHAR "Europe/Paris" . जैसे समय क्षेत्र को सहेजना या एक SMALLINT मिनटों में ऑफ़सेट सहेजना.
  2. ZonedDateTime कन्वर्ट करें एक String . के लिए और एक VARCHAR . में सेव करें कॉलम जैसे "2017-05-16T14:12:48.983682+01:00[Europe/London]" . फिर आपको डेटाबेस से पढ़ते समय इसे पार्स करना होगा।


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. शीर्ष सामान्य MySQL प्रश्न

  2. php और mysql एक टेबल से दूसरी टेबल पर कॉपी रिकॉर्ड करते हैं

  3. पीडीओ पर bind_result के बराबर क्या है

  4. INSERT INTO ... सभी कॉलमों का विवरण दिए बिना चुनें

  5. बेहतर PHP, MySQL, HTML और JavaScript IDE