सबसे पहले, आप भ्रमित कर रहे हैं java.util
java.sql
. के साथ . PreparedStatement#setDate()
और ResultSet#getDate()
, आपको चाहिए java.sql.Date
. अनुरूप, PreparedStatement#setTimestamp()
और ResultSet#getTimestamp()
आपको चाहिए java.sql.Timestamp
।
दूसरा, यह समझना महत्वपूर्ण है कि java.sql.Date
केवल तारीख . का प्रतिनिधित्व करता है (वर्ष, महीना, दिन) और कुछ भी कम या ज्यादा नहीं। इसे SQL DATE
में मैप किया जाना है क्षेत्र के जैसा। java.sql.Timestamp
टाइमस्टैम्प . का प्रतिनिधित्व करता है (वर्ष, महीना, दिन, घंटा, मिनट, दूसरा, मिलीसेकंड), ठीक उसी तरह जैसे java.util.Date
और java.util.Calendar
कोड>
करता है। इसे SQL TIMESTAMP
में मैप किया जाना है या DATETIME
फ़ील्ड प्रकार।
समयक्षेत्र के अनुसार, आपको इसकी आवश्यकता तब पड़ती है जब डेटाबेस समयक्षेत्र की जानकारी संग्रहीत नहीं करता है (इस प्रकार, सभी टाइमस्टैम्प UTC (GMT) में संग्रहीत होते हैं)। फिर आप एक Calendar
पास कर सकते हैं जिसमें वर्तमान समयक्षेत्र के बारे में जानकारी होती है, ताकि JDBC ड्राइवर UTC टाइमस्टैम्प को टाइमज़ोन के अनुरूप टाइमस्टैम्प में समायोजित कर सके। यदि यह उदाहरण के लिए GMT+1 है, तो JDBC ड्राइवर लौटने से पहले टाइमस्टैम्प में एक घंटा जोड़ देगा।