आपके पास त्रुटिपूर्ण डिज़ाइन . है .
- आपको कभी भी डेटाटाइम स्टोर नहीं करना चाहिए मान स्ट्रिंग . के रूप में ।
- दिनांक हमेशा दिनांक और समय दोनों तत्व होते हैं, इसलिए समय तत्व को अलग से संग्रहीत करने की आवश्यकता नहीं है।
वैसे भी, एक वैकल्पिक हल के रूप में, आपको पहले स्ट्रिंग को दिनांक में बदलना होगा और फिर सेकंड में अवधि ज्ञात करनी होगी , सेकंड को TRUNC(SYSDATE)
. में जोड़ें , तो बाकी आसान है दिनांक स्वरूपण ।
उदाहरण के लिए,
SQL> WITH sample_data AS(
2 SELECT '21:30:03' START_TIME, '21:34:11' END_TIME FROM dual
3 )
4 SELECT start_time,
5 end_time,
6 TO_CHAR (TRUNC (SYSDATE) + (to_date(end_time, 'HH24:MI:SS') -
7 to_date(start_time, 'HH24:MI:SS')
8 ) , 'hh24:mi:ss' ) duration
9 FROM sample_data;
START_TI END_TIME DURATION
-------- -------- --------
21:30:03 21:34:11 00:04:08
SQL>