में मैं कहाँ में समय-चिह्न के साथ PreparedStatement उपयोग कर रहा हूँ खंड:PreparedStatement और setTimestamp ओरेकल JDBC
PreparedStatement s=c.prepareStatement("select value,utctimestamp from t where utctimestamp>=? and utctimestamp<?");
s.setTimestamp(1, new Timestamp(1273017600000L)); //2010-05-05 00:00 GMT
s.setTimestamp(2, new Timestamp(1273104000000L)); //2010-05-06 00:00 GMT
ResultSet rs = s.executeQuery();
if(rs.next()) System.out.println(rs.getInt("value"));
परिणाम मैं अलग है, जब मैं क्लाइंट कंप्यूटर पर विभिन्न समय क्षेत्रों की है। क्या यह ओरेकल जेडीबीसी में एक बग है? या सही व्यवहार?
ओरेकल डेटाबेस संस्करण 10.2 है और मैंने ऑरैकल जेडीबीसी पतली ड्राइवर संस्करण 10.2 और 11.1 के साथ प्रयास किया है।
पैरामीटर टाइमस्टैम्प है, और मुझे उम्मीद है कि रास्ते पर कोई भी समय रूपांतरण नहीं किया जाएगा। डेटाबेस कॉलम प्रकार DATE है, लेकिन मैंने इसे उसी परिणाम के साथ TIMESTAMP कॉलम प्रकार के साथ भी चेक किया है।
क्या सही परिणाम प्राप्त करने का कोई तरीका है? मैं पूरे एप्लिकेशन में यूटीसी में डिफ़ॉल्ट टाइमज़ोन नहीं बदल सकता।
आपकी मदद
कृपया अपना प्रश्न संपादित करें और t_begin और t_end के प्रकार जोड़ें। –