varchar2到时间戳

时间:2012-05-14 05:54:11

标签: oracle oracle11g

我有以下数据

SELECT T.FEED_TIME from GLRS.FEED_TYPE T 

05:00:00 AM
06:00:00 AM

WHERE FEED_TIME是VARCHAR2(20)

现在我必须添加1天来计算下一个运行时间并将其转换为时间戳值

SELECT to_timestamp(T.FEED_TIME,'dd-Mon-yyyy HH24:MI')+1 FROM FEED_TYPE T WHERE T.FEED_CODE = 'CREDIT';

但上面的查询返回的不是有效月份 请建议

1 个答案:

答案 0 :(得分:2)

您的varchar2数据和日期格式字符串不匹配。

  

05:00:00 AM<> dd-Mon-yyyy HH24:MI

看起来你的数据只包含时间,但是既然你提到'添加一天',我会猜测并假设前两个字符是你的一天,剩下的就是时间。然后你需要类似下面的东西:

SELECT to_char(to_date(T.FEED_TIME,'dd:HH:MI AM')+1, 'dd:HH:MI AM')
FROM FEED_TYPE T WHERE T.FEED_CODE = 'CREDIT';