Gibt es einen Wert oder Befehl wie DATETIME, den ich in einer manuellen Abfrage verwenden kann, um das aktuelle Datum und die aktuelle Uhrzeit einzufügen?
INSERT INTO servers (
server_name, online_status, exchange, disk_space, network_shares
) VALUES(
'm1', 'ONLINE', 'ONLINE', '100GB', 'ONLINE' 'DATETIME'
)
Der angegebene DATETIME-Wert am Ende ist der Ort, an dem ich das aktuelle Datum und die aktuelle Uhrzeit hinzufügen möchte.
Antworten:
Sie können verwenden
NOW()
:quelle
curdate()
Verwenden Sie CURRENT_TIMESTAMP () oder now ()
Mögen
oder
Ersetzen Sie date_time durch den Spaltennamen, mit dem Sie die Uhrzeit einfügen möchten.
quelle
Obwohl es viele akzeptierte Antworten gibt, denke ich, dass dieser Weg auch möglich ist:
Erstellen Sie Ihre 'Server'- Tabelle wie folgt :
Und Ihre INSERT- Anweisung sollte lauten :
Meine Umgebung:
Core i3 Windows Laptop mit 4 GB RAM, und ich habe das obige Beispiel auf MySQL Workbench 6.2 (Version 6.2.5.0 Build 397 64 Bits) ausgeführt.
quelle
Ja, Sie können den
CURRENT_TIMESTAMP()
Befehl verwenden.Siehe hier: Datums- und Uhrzeitfunktionen
quelle
quelle
Die richtige Antwort lautet SYSDATE () .
Wir können dieses Verhalten ändern und
NOW()
verhalten,SYSDATE()
indem wir das Befehlszeilenargument sysdate_is_now auf setzenTrue
.Beachten Sie, dass
NOW()
(wasCURRENT_TIMESTAMP()
als Alias gilt) sichSYSDATE()
auf subtile Weise von unterscheidet: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 :Wenn Sie das aktuelle Datum im Epochenformat haben möchten , können Sie UNIX_TIMESTAMP () verwenden . Beispielsweise:
ergäbe
Verbunden:
quelle
Im Datenbankdesign wird die Verwendung von Unixtime aus Gründen der Konsistenz und der Indizierungs- / Such- / Vergleichsleistung dringend empfohlen.
Man kann danach immer in von Menschen lesbare Formate konvertieren und internationalisieren, wie es individuell am bequemsten ist.
quelle
Wenn Sie den Standardwert ändern,
CURRENT_TIMESTAMP
ist dies effizienter.quelle
Sie können nicht nur
now()
auchcurrent_timestamp()
und verwendenlocaltimestamp()
. Der Hauptgrund für den falschen Zeitstempel der Anzeige ist das Einfügen von NOW () in einfache Anführungszeichen ! In MySQL Workbench hat es wegen dieser IDE nicht funktioniert. Fügen Sie einfache Anführungszeichen für MySQL-Funktionen hinzu, und ich habe es nicht sofort erkannt.Verwenden Sie keine Funktionen mit einfachen Anführungszeichen wie in MySQL Workbench. Es funktioniert nicht.
quelle
quelle