Die richtige Antwort lautet SYSDATE () .
INSERT INTO servers (
server_name, online_status, exchange, disk_space,
network_shares, date_time
)
VALUES (
'm1', 'ONLINE', 'ONLINE', '100GB', 'ONLINE', SYSDATE()
);
Wir können dieses Verhalten ändern und NOW()
verhalten, SYSDATE()
indem wir das Befehlszeilenargument sysdate_is_now auf setzen True
.
Beachten Sie, dass NOW()
(was CURRENT_TIMESTAMP()
als Alias gilt) sich SYSDATE()
auf subtile Weise von unterscheidet:
SYSDATE () gibt den Zeitpunkt zurück, zu dem es ausgeführt wird. Dies unterscheidet sich vom Verhalten für NOW (), das eine konstante Zeit zurückgibt, die den Zeitpunkt angibt, zu dem die Ausführung der Anweisung begonnen hat. (Innerhalb einer gespeicherten Funktion oder eines gespeicherten Triggers gibt NOW () den Zeitpunkt zurück, zu dem die Ausführung der Funktion oder der auslösenden Anweisung begonnen hat.)
Wie von Erandi angegeben , ist es am besten, Ihre Tabelle mit der DEFAULT
Klausel zu erstellen , damit die Spalte beim Einfügen einer neuen Zeile automatisch mit dem Zeitstempel gefüllt wird :
date_time datetime NOT NULL DEFAULT SYSDATE()
Wenn Sie das aktuelle Datum im Epochenformat haben möchten , können Sie UNIX_TIMESTAMP () verwenden . Beispielsweise:
select now(3), sysdate(3), unix_timestamp();
ergäbe
+-------------------------+-------------------------+------------------+
| now(3) | sysdate(3) | unix_timestamp() |
+-------------------------+-------------------------+------------------+
| 2018-11-27 01:40:08.160 | 2018-11-27 01:40:08.160 | 1543282808 |
+-------------------------+-------------------------+------------------+
Verbunden: