Oracle在SQL中添加1小时

Tra*_*vis 14 sql oracle

我只是想在一个值上加1小时,这有点复杂在哪里以及为什么我这样做但基本上我只需要查询这样的东西

select DATE_ADD(hh,1,'2014-10-15 03:30:00 pm') from dual
Run Code Online (Sandbox Code Playgroud)

我一直在阅读那些说使用dateAdd或date_add的旧文章,但我一直收到无效的标识符错误.

Mul*_*ync 31

select sysdate + 1/24 from dual;
Run Code Online (Sandbox Code Playgroud)

sysdate是一个没有参数的函数,返回DATE类型
+ 1/24将日期添加1小时

select to_char(to_date('2014-10-15 03:30:00 pm', 'YYYY-MM-DD HH:MI:SS pm') + 1/24, 'YYYY-MM-DD HH:MI:SS pm') from dual;
Run Code Online (Sandbox Code Playgroud)


a_h*_*ame 12

使用间隔:

select some_date_column + interval '1' hour 
from your_table;
Run Code Online (Sandbox Code Playgroud)

  • @ÁlvaroG.Vicario:你可以通过使用类似的东西来解决这个问题:`some_date_column +(interval'1' hour*:hour_count)` (4认同)

小智 7

老方法

SELECT DATE_COLUMN + 1 is adding a day
SELECT DATE_COLUMN + N /24 to add hour(s) - N being number of hours
SELECT DATE_COLUMN + N /1440 to add minute(s) - N being number of minutes
SELECT DATE_COLUMN + N /86400 to add second(s) - N being number of seconds
Run Code Online (Sandbox Code Playgroud)

使用间隔

SELECT DATE_COLUMN + INTERVAL 'N' HOUR or MINUTE or SECOND - N being a number of hours or minutes or seconds.
Run Code Online (Sandbox Code Playgroud)


Dmi*_*riy 5

您可以使用INTERVAL类型,也可以仅添加计算得出的数值-“ 1”等于“ 1天”。

第一种方式:

select date_column + INTERVAL '0 01:00:00' DAY TO SECOND from dual;
Run Code Online (Sandbox Code Playgroud)

第二种方式:

select date_column + 1/24 from dual;
Run Code Online (Sandbox Code Playgroud)

当您需要添加复杂的值时,例如“ 1天3小时25分49秒”,第一种方法更方便。另请参阅:http : //www.oracle-base.com/articles/misc/oracle-dates-timestamps-and-intervals.php

您还必须记住,oracle具有两种间隔类型-DAY TO SECOND和YEAR TO MONTH。对于我来说,一种时间间隔类型会更好,但是我希望Oracle中的人们知道他们在做什么;)