2014-12-12 6 views
23
SELECT ORDER_NUM, CUSTOMER_NUM, CUSTOMER_NAME, ADD_DAYS (ORDER_DATE, 20) 
FROM CUSTOMER, ORDERS; 

Oracle Express dice ADD_DAYS non valido? Qualche idea su cosa sto sbagliando?Aggiungi giorni Oracle SQL

+1

Si prega di includere sempre il messaggio di errore effettivo fornito. – EWit

+1

'Seleziona sysdate, sysdate + 1 da dual;' Add_Days non è una funzione di oracle. https://community.oracle.com/thread/58184?tstart=0 – xQbert

+0

"* Qualche idea su cosa sto sbagliando?" * - controlla il manuale, non elenca una funzione 'add_days()' –

risposta

17

È possibile utilizzare l'operatore più per aggiungere giorni a una data.

order_date + 20 
27

Se si desidera aggiungere N giorni ai propri giorni. È possibile utilizzare l'operatore più come segue -

SELECT (SYSDATE + N) FROM DUAL; 
3

E 'possibile utilizzare Simple.You

select (sysdate+2) as new_date from dual; 

Questo aggiungerà due giorni dalla data corrente.

12

In un modo più generale è possibile utilizzare "INTERVAL". Ecco alcuni esempi:

1) aggiungere un giorno

select sysdate + INTERVAL '1' DAY from dual; 

2) aggiungere 20 giorni

select sysdate + INTERVAL '20' DAY from dual; 

2) aggiungere alcuni minuti

select sysdate + INTERVAL '15' MINUTE from dual; 
3

Alcuni svantaggio di "INTERVAL ' 1 'GIORNO "è che le variabili di binding non possono essere utilizzate per il numero di giorni aggiunti. Invece, numtodsinterval può essere utilizzato, come in questo piccolo esempio:

select trunc(sysdate) + numtodsinterval(:x, 'day') tag 
from dual 

Consulta anche: NUMTODSINTERVAL in Oracle Database Online Documentation