2014-10-22 5 views
5

ich nur 1 Stunde auf einen Wert hinzuzufügen, ich versuche, ist es ein bisschen kompliziert, wo und warum ich das tue, aber im Grunde muss ich nur so etwas wie diesesOracle 1 Stunde hinzufügen in SQL

select DATE_ADD(hh,1,'2014-10-15 03:30:00 pm') from dual 
abfragen

Ich lese immer wieder alte Artikel, die sagen, dass ich dateAdd oder date_add verwende, aber ich erhalte immer wieder ungültige ID-Fehler.

Antwort

14
select sysdate + 1/24 from dual; 

sysdate ist eine Funktion ohne Argumente, die DATE Typ liefert
+ 1/24 addiert 1 Stunde bis zu einem Tag

select to_char(to_date('2014-10-15 03:30:00 pm', 'YYYY-MM-DD HH:MI:SS pm') + 1/24, 'YYYY-MM-DD HH:MI:SS pm') from dual; 
+0

Ich möchte nicht das Sysdate ich habe einen statischen Wert, den ich von einer anderen Abfrage, dass ich 1 Stunde hinzufügen muss. Wählen Sie ('2014-10-15 03:30:00 Uhr' + 1/24) von Dual; gibt mir ungültige Nummer – Travis

+0

@Travis Aktualisierte die Antwort – Multisync

+0

DANKE! Ich werde die Antwort akzeptieren, sobald es mir erlaubt, – Travis

5

Verwenden ein Intervall:

select some_date_column + interval '1' hour 
from your_table; 
+0

Vorsicht, dass "Intervall" eine Zeichenfolge erwartet und wird nicht automatisch umgewandelt. Dies kann zu Problemen führen, wenn Sie vorbereitete Anweisungen verwenden: 'some_date_column + interval: hour_count hour' wird ausgelöst * ORA-00923: FROM-Schlüsselwort nicht gefunden, wo erwartet *. –

+2

@ ÁlvaroG.Vicario: Sie können umgehen, indem Sie etwas wie folgt verwenden: 'some_date_column + (Intervall '1' Stunde *: Stunde_Zahl) ' –

3

Sie können den INTERVAL-Typ verwenden oder einfach den berechneten Zahlenwert hinzufügen - "1" ist gleich "1 Tag".

erster Weg:

select date_column + INTERVAL '0 01:00:00' DAY TO SECOND from dual; 

zweiter Weg:

select date_column + 1/24 from dual; 

erster Weg ist bequemer, wenn Sie einen komplizierten Wert hinzufügen müssen - zum Beispiel „1 Tag 3 Stunden 25 Minuten 49 Sekunden ". Siehe auch: http://www.oracle-base.com/articles/misc/oracle-dates-timestamps-and-intervals.php

Auch Sie müssen daran denken, dass Orakel zwei Intervalltypen haben - Tag zu Sekunde und Jahr zu Monat. Was mich betrifft, würde ein Intervalltyp besser sein, aber ich hoffe, die Menschen in Orakel weiß, was sie tun;)

1

Die Berechnung ist einfach

wenn Sie 1 Stunde in dem Datum hinzugefügt werden soll.

jeden Tag 24 Stunden haben, können Sie hinzufügen.

select sysdate + 1/24 from dual; 

wenn Sie 1 Tag

select sysdate + 24/24 from dual; 

or 

select sysdate + 1 from dual; 

same as for 2, 3 , 4 day 

Für statisches Datum hinzufügen wollen, müssen Sie die Antwort unten.