Fügen Sie zwei Stunden zu timestamp
Habe ich einen trigger, um einen timestamp auf die aktuelle Zeit plus zwei Stunden, wenn das Feld null ist, bevor Sie einfügen. Eine der Aussagen, die ich bisher ausprobiert ist
IF :new.time_to_live IS NULL THEN
:new.time_to_live := sysdate + INTERVAL '0 02:00:00.0' HOUR TO MINUTE;
END IF;
aber ich bekommen eine PLS-00166-Fehler (falsche format für Datum, Zeit, Zeitstempel oder Intervall-Literale) für die zweite Zeile. Auch verändert es mehrere Vorschläge in mehreren Foren, aber der Fehler bleibt. Die Spalte ist wie folgt angelegt:
time_to_live timestamp(0) NOT NULL
InformationsquelleAutor Matthias Brück | 2015-05-11
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sie brauchen, um Ihre
HOUR TO MINUTE
zu dem Wert passen, der Sie tatsächlich vorbei:Vielleicht wollen Sie auch zu verwenden
systimestamp
stattsysdate
. Sie können verwenden Sie ein kürzeres interval-literal zu, wenn Sie fügen immer genau zwei Stunden:oder nur
Als eine kurze demo:
InformationsquelleAutor Alex Poole
Alther
interval
können wirklich bequem sein, habe ich oft schreiben diese als:Hinzufügen eine Ganzzahl, ein Datum wird als Anzahl der Tage. "2 /24" ist zwei Stunden.
SELECT TO_CHAR(SYSTIMESTAMP, 'YYYY-MM-DD HH24:MI:SS.FF') FROM DUAL;
sondern ein Ausdruck wie dieser Pausen:SELECT TO_CHAR(SYSTIMESTAMP + 2 / 24, 'YYYY-MM-DD HH24:MI:SS.FF') FROM DUAL;
InformationsquelleAutor Gordon Linoff