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

Oracle Express twierdzi, że ADD_DAYS jest nieprawidłowe? Jakieś pomysły, co robię źle?Dodawanie dni Oracle SQL

+1

Proszę zawsze zawierać rzeczywisty komunikat o błędzie dostarczone. – EWit

+1

'Wybierz sysdate, sysdate + 1 z dual;' Add_days nie jest funkcją Oracle. https://community.oracle.com/thread/58184?tstart=0 – xQbert

+0

"* Jakieś pomysły, co robię źle?" * - sprawdź instrukcję, nie wyświetla ona funkcji 'add_days()' –

Odpowiedz

17

Możesz użyć operatora plus, aby dodać dni do daty.

order_date + 20 
27

Jeśli chcesz dodać N dni do swoich dni. Można użyć operatora plusa następująco -

SELECT (SYSDATE + N) FROM DUAL; 
3

To Simple.You mogą korzystać

select (sysdate+2) as new_date from dual; 

Spowoduje to dodanie dwóch dni od daty bieżącej.

12

W bardziej ogólny sposób można użyć "INTERWAL". Tutaj kilka przykładów:

1) dodaj dzień

select sysdate + INTERVAL '1' DAY from dual; 

2) Dodać 20 dni

select sysdate + INTERVAL '20' DAY from dual; 

2) dodać kilka minut

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

Niektóre wadą „przerwy" 1 "DZIEŃ" oznacza, że ​​zmienne wiązania nie mogą być używane przez liczbę dodanych dni. Zamiast numtodsinterval może być stosowany, podobnie jak w tym małym przykład:

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

Zobacz także: NUMTODSINTERVAL in Oracle Database Online Documentation