SELECT ORDER_NUM, CUSTOMER_NUM, CUSTOMER_NAME, ADD_DAYS (ORDER_DATE, 20) FROM CUSTOMER, ORDERS; Oracle Express says ADD_DAYS invalid? Any ideas what Am I doing wrong?
26 Answers
If you want to add N days to your days. You can use the plus operator as follows -
SELECT ( SYSDATE + N ) FROM DUAL; You can use the plus operator to add days to a date.
order_date + 20 In a more general way you can use "INTERVAL". Here some examples:
1) add a day
select sysdate + INTERVAL '1' DAY from dual; 2) add 20 days
select sysdate + INTERVAL '20' DAY from dual; 2) add some minutes
select sysdate + INTERVAL '15' MINUTE from dual; 2Some disadvantage of "INTERVAL '1' DAY" is that bind variables cannot be used for the number of days added. Instead, numtodsinterval can be used, like in this small example:
select trunc(sysdate) + numtodsinterval(:x, 'day') tag from dual See also: NUMTODSINTERVAL in Oracle Database Online Documentation
1It's Simple.You can use
select (sysdate+2) as new_date from dual; This will add two days from current date.
One thing about select (sysdate+3) from dual is that the sysdate is interpreted as date.
But if you want to use a custom date, not local, you need to make sure it is interpreted as date, not string. Like so (adding 3 days):
select (to_date('01/01/2020')+3) from dual