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

Oracle Express sagt ADD_DAYS ungültig? Irgendwelche Ideen was mache ich falsch?Tage hinzufügen Oracle SQL

+1

Bitte immer die tatsächliche Fehlermeldung vorgesehen sind. – EWit

+1

'Wählen Sie sysdate, sysdate + 1 aus dual;' Add_Days ist keine Oracle-Funktion. https://community.oracle.com/thread/58184?tstart=0 – xQbert

+0

"* Irgendwelche Ideen was mache ich falsch?" * - Überprüfen Sie das Handbuch, es enthält keine Funktion 'add_days()' –

Antwort

17

Mit dem Plus-Operator können Sie Tage zu einem Datum hinzufügen.

order_date + 20 
27

Wenn Sie N Tage zu Ihren Tagen hinzufügen möchten. Sie können die Plus-Operator wie folgt verwenden -

SELECT (SYSDATE + N) FROM DUAL; 
3

Es ist Simple.You

select (sysdate+2) as new_date from dual; 

Diese zwei Tagen legen aus dem aktuellen Datum verwenden können.

12

In einer allgemeineren Weise können Sie "INTERVAL" verwenden. Hier einige Beispiele:

1) fügen Sie einen Tag

select sysdate + INTERVAL '1' DAY from dual; 

2) 20 Tagen

select sysdate + INTERVAL '20' DAY from dual; 

2) fügen Sie einige Minuten

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

Einige Nachteil „INTERVAL ' 1 'TAG' bedeutet, dass Bind-Variablen nicht für die Anzahl der hinzugefügten Tage verwendet werden können. Stattdessen kann NUMTODSINTERVAL verwendet werden, wie in diesem kleinen Beispiel:

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

Siehe auch: NUMTODSINTERVAL in Oracle Database Online Documentation