我试图仅选择标准24小时格式的时间值。 我尝试了以下操作,但对我不起作用(语法错误)。
SELECT to_char('08:45','HH:Mi') AS TIME FROM DUAL;
SELECT to_date('08:45','HH:Mi') AS TIME FROM DUAL;
所需结果:
|TIME|
|08:45|
答案 0 :(得分:3)
正如@Gordon所说,Oracle中没有TIME
数据类型。最接近的替代方法是INTERVAL DAY TO SECOND
使用TO_DSINTERVAL
将您的时间字符串转换为间隔。
SELECT SYSDATE,
TO_DSINTERVAL('00 ' || '08:45' || ':00') AS time,
SYSDATE + TO_DSINTERVAL('00 ' || '08:45' || ':00') AS date_plus_time
FROM dual;
SYSDATE TIME DATE_PLUS_TIME
------------------- ------------------- -------------------
2018-10-26 18:12:58 +00 08:45:00.000000 2018-10-27 02:57:58