2013-03-09 59 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