मेरा मानना है कि स्ट्रिंग मान में हेरफेर करना सबसे आसान और सरल उपाय है, इसलिए मैं एक वैकल्पिक समाधान प्रस्तुत करूंगा।
इंटरवल डे टू सेकेंड डेटा टाइप
और कॉलम की परिभाषा से START_TIME
आपके प्रश्न में, स्तंभ मान एक दिन से अधिक नहीं हो सकते हैं और न ही उनमें भिन्नात्मक सेकंड हो सकते हैं।
Oracle से JDBC दस्तावेज़
, डेटाटाइप INTERVAL DAY TO SECOND
जावा वर्ग के लिए मानचित्र oracle.sql.INTERVALDS
. (यह Oracle JDBC ड्राइवर JAR फ़ाइल की कक्षाओं में से एक है।)
javadoc से
कक्षा के oracle.sql.INTERVALDS
:
आप जानते हैं कि केवल बाइट 4, 5 और 6 कॉलम की परिभाषा के कारण प्रासंगिक हैं START_TIME
, यानी शून्य दिन और शून्य भिन्नात्मक सेकंड। लेकिन चूंकि आपने अपने प्रश्न में लिखा है कि आप सेकंड को अनदेखा कर रहे हैं, इसका मतलब है कि केवल बाइट 4 और 5 प्रासंगिक हैं। इसलिए ResultSet
. से मान प्राप्त करने के लिए कोड और इसे अपने इच्छित प्रारूप में एक स्ट्रिंग में परिवर्तित करना है:
INTERVALDS intervalDS = (INTERVALDS) rs.getObject("START_TIME");
byte[] bytes = intervalDS.toBytes();
int hour = bytes[4] - 60;
int minute = bytes[5] - 60;
String result = String.format("%02d:%02d", hour, minute);