2015-10-04 7 views
6

Ich habe unten Code geschrieben, aber es scheint nur das aktuelle Datum und nicht die aktuelle Zeit einzufügen. Weiß jemand, wie man das macht?In Oracle SQL: Wie fügen Sie das aktuelle Datum + Uhrzeit in eine Tabelle ein?

insert into errortable 
(dateupdated,table1id) 
values 
(TO_DATE(sysdate, 'dd/mm/yyyy hh24:mi:ss'),1083); 
+0

Woher wissen Sie, dass es nur das aktuelle Datum einfügt? Haben Sie es versucht, indem Sie sich die Rohtabelle angesehen haben oder haben Sie versucht, es mit einer Abfrage anzuzeigen? – brenners1302

+0

ja es speichert 00:00 als Zeit; Ich habe das in der Tabelle bestätigt. möchte aktuelles Datum und aktuelle Uhrzeit speichern – Tikkaty

+0

Hinweis: In Oracle, Aktuelles Datum + Zeit = Sysdate. 'select sysdate from dual würde 2015-10-05 09: 24: 40' produzieren. – RubahMalam

Antwort

8

Es scheint nur, weil das ist, was es ausdruckt. Aber eigentlich solltest du die Logik nicht so schreiben. Dies entspricht:

insert into errortable (dateupdated, table1id) 
    values (sysdate, 1083); 

Es albern scheint nur das Systemdatum in eine Zeichenfolge zu konvertieren es in ein Datum zu konvertieren zurück.

Wenn Sie das vollständige Datum sehen möchten, dann können Sie tun:

select TO_CHAR(dateupdated, 'YYYY-MM-DD HH24:MI:SS'), table1id 
from errortable; 
+0

danke @gordon. Wollen Sie sagen, dass sysdate insert das aktuelle Datum und die aktuelle Uhrzeit mit Ihrer Methode speichern soll? – Tikkaty

+0

@Tikkaty. . . Ja, 'sysdate' hat eine Zeitkomponente. –

-3

Sie können mit folgenden Abfrage versuchen:

INSERT INTO errortable (dateupdated,table1id) 
VALUES (to_date(to_char(sysdate,'dd/mon/yyyy hh24:mi:ss'), 'dd/mm/yyyy hh24:mi:ss'),1083); 

das Ergebnis davon an:

SELECT to_char(hire_dateupdated, 'dd/mm/yyyy hh24:mi:ss') 
FROM errortable 
    WHERE table1id = 1083; 
+2

Es macht keinen Sinn, Sysdate in eine Zeichenfolge und dann zurück zu einem Datum zu konvertieren – miracle173

Verwandte Themen