2013-03-09 92 views
0

我想用sql查询来做一些操作,比如今天显示日期+ 3,这意味着如果今天是2013-03-09,那么3天就会增加2013-03-12。oracle to_date函数操作

这是我的示例表:

PLACES(VARCHAR) TMS(NUMBER) 
LONDON   20130301 
TAIWAN   20130302 

我必须用to_date函数来将其转换为日期格式。

select to_char(to_date(TMS,'YYYY-MM-DD'),'YYYY-MM-DD') from city; 

结果:

TO_CHAR(TO_DATE(TMS,'YYYY-MM-DD'),'YYYY-MM-DD') 
2013-03-01 
2013-03-02 

我已经试过如下:

select to_char(to_date(TMS+3,'YYYY-MM-DD'),'YYYY-MM-DD') from city; 

但它不能正常工作。任何提示?由于

+0

只是要清楚,20130301 + 3将devliver一些东西,可以转换为04-MAR-2013,但20130228 + 3不会实现03-MAR-2013。 – APC 2013-03-09 22:24:38

回答

2
select to_char(to_date(TMS,'YYYY-MM-DD')+3,'YYYY-MM-DD') from city; 
+0

它适合我!谢谢 ! – crchin 2013-03-09 15:59:20

0

希望这将帮助你..

select to_char(to_date(TMS,'YYYY-MM-DD')+ INTERVAL '3' DAY,'YYYY-MM-DD') from city; 
+0

它可以很好地工作,但是如果间隔'3'超过100,它会抛出一个错误“ORA-01873:间隔的前导精度太小” – crchin 2013-03-09 16:01:23

+0

如果你想让一天大于100,你可以使用月,同样的事情要更改为MONTH – 2013-03-09 16:02:56