添加天数Oracle SQL

SQL*_*ent 44 sql oracle11g

SELECT ORDER_NUM, CUSTOMER_NUM, CUSTOMER_NAME, ADD_DAYS (ORDER_DATE, 20)
FROM CUSTOMER, ORDERS; 
Run Code Online (Sandbox Code Playgroud)

Oracle Express称ADD_DAYS无效?任何想法我做错了什么?

小智 51

如果你想在你的日子里添加N天.您可以使用加号运算符,如下所示 -

SELECT ( SYSDATE + N ) FROM DUAL;
Run Code Online (Sandbox Code Playgroud)


Mik*_*ike 34

您可以使用加号运算符将日期添加到日期.

order_date + 20
Run Code Online (Sandbox Code Playgroud)


Fra*_*rra 28

以更一般的方式,您可以使用"INTERVAL".这里有一些例子:

1)加一天

select sysdate + INTERVAL '1' DAY from dual;
Run Code Online (Sandbox Code Playgroud)

2)加20天

select sysdate + INTERVAL '20' DAY from dual;
Run Code Online (Sandbox Code Playgroud)

2)加几分钟

select sysdate + INTERVAL '15' MINUTE from dual;
Run Code Online (Sandbox Code Playgroud)

  • 请注意:请勿使用它来增加月份!例如,尝试`select to_date('31 .03.2019','dd.mm.yyyy')+间隔从双数开始的'1'月。 (2认同)

小智 7

很简单,您可以使用

select (sysdate+2) as new_date from dual;
Run Code Online (Sandbox Code Playgroud)

这将从当前日期起增加两天。


小智 7

“ INTERVAL'1'DAY”的一些缺点是绑定变量不能用于添加的天数。相反,可以使用numtodsinterval,例如以下示例所示:

select trunc(sysdate) + numtodsinterval(:x, 'day') tag
from dual
Run Code Online (Sandbox Code Playgroud)

另请参见:Oracle数据库在线文档中的NUMTODSINTERVAL