यदि आप कम सटीकता चाहते हैं तो आप परिणाम कास्ट कर सकते हैं:
SQL> SELECT TO_DSINTERVAL('10 10:00:00') t_interval FROM dual;
T_INTERVAL
-----------------------------------------------------------
+000000010 10:00:00.000000000
SQL> SELECT CAST(TO_DSINTERVAL('10 10:00:00')
2 AS INTERVAL DAY(2) TO SECOND(3)) t_interval
3 FROM dual;
T_INTERVAL
-----------------------------------------------------------
+10 10:00:00.000
निम्नलिखित ओपी टिप्पणी संपादित करें:
Oracle Documentation से (11gr1):
अंतराल डेटाटाइप में प्रारूप मॉडल नहीं होते हैं। इसलिए, उनकी प्रस्तुति को समायोजित करने के लिए, आपको चरित्र कार्यों जैसे कि EXTRACT और घटकों को संयोजित करना होगा।
ऐसा लगता है कि वांछित आउटपुट प्राप्त करने के लिए आपको मैन्युअल रूप से EXTRACT का उपयोग करना होगा:
SQL> SELECT to_char(extract(DAY FROM t_interval), 'fmS99999') || ' ' ||
2 to_char(extract(HOUR FROM t_interval), 'fm00') || ':' ||
3 to_char(extract(MINUTE FROM t_interval), 'fm00') || ':' ||
4 to_char(extract(SECOND FROM t_interval), 'fm00.000')
5 FROM (SELECT TO_DSINTERVAL('10 01:02:55.895') t_interval FROM dual)
6 ;
TO_CHAR(EXTRACT(DAYFROMT_INTER
------------------------------
+10 01:02:55.895
यह बहुत सुंदर नहीं है लेकिन ऐसा लगता है कि माइक्रोसेकंड की सटीकता से निपटने का यही एकमात्र तरीका है।