2013-10-08 1 views
87

Gibt es einen Wert oder einen Befehl wie DATETIME, die ich in einer manuellen Abfrage verwenden kann, um das aktuelle Datum und die Uhrzeit einzufügen?MySQL - aktuelle Datum/Zeit einfügen?

Der angegebene DATETIME-Wert am Ende ist, wo ich das aktuelle Datum und die Uhrzeit hinzufügen möchte.

+0

http://dev.mysql.com/doc/refman/5.5/en/date-and -time-functions.html – Colandus

+6

NOW(), siehe https://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_now ... Und bitte, beim nächsten Mal zumindest etwas Rechercheaufwand in Ihre Frage, das kann leicht gegoogelt werden (daher habe ich diese Frage einfach runtergestimmt) – dirkk

+0

Meine Frage war eher darauf ausgerichtet wie ich sie nutzen sollte die Syntax, die ich oben gepostet habe. –

Antwort

163

können Sie NOW() verwenden:

INSERT INTO servers (server_name, online_status, exchange, disk_space, network_shares, c_time) 
VALUES('m1', 'ONLINE', 'exchange', 'disk_space', 'network_shares', NOW()) 
+0

# 1054 - Unbekannte Spalte 'Stempel' in 'Feldliste' - Gibt es etwas, das ich vermisse? –

+34

Ersetzen Sie einfach Stempel mit was auch immer Ihr Feldname ist, wirklich. Nicht nur kopieren und einfügen. –

+4

Wenn es sich um einen Feldtyp "Datum" handelt, können Sie auch 'curdate()' – tandy

19

Verwenden CURRENT_TIMESTAMP() oder (jetzt) ​​

Wie

INSERT INTO servers (server_name, online_status, exchange, disk_space, 
network_shares,date_time) VALUES('m1','ONLINE','ONLINE','100GB','ONLINE',now()) 

oder

INSERT INTO servers (server_name, online_status, exchange, disk_space, 
network_shares,date_time) VALUES('m1', 'ONLINE', 'ONLINE', '100GB', 'ONLINE' 
,CURRENT_TIMESTAMP()) 

Ersetzen Sie date_time durch den Spaltennamen, den Sie zum Einfügen der Uhrzeit verwenden möchten.

-6
$rs = $db->Insert('register',"'$fn','$ln','$email','$pass','$city','$mo','$fil'","'f_name','l_name=','email','password','city','contact','image'"); 
+0

verwenden. Sie sollten Ihre Antwort kurz erklären. –

+0

Diese Antwort bedeutet wirklich sehr wenig! –

0

können Sie verwenden nicht nur now(), auch current_timestamp() und localtimestamp(). Der Hauptgrund für falsche Zeitstempel ist das Einfügen von NOW() in einfache Anführungszeichen! Es funktionierte nicht für mich in MySQL Workbench, weil dieses IDE einfache Anführungszeichen für mysql-Funktionen hinzufügt und ich es nicht sofort erkannte.)

Verwenden Sie keine Funktionen mit einfachen Anführungszeichen wie in MySQL Workbench. Es funktioniert nicht.

13

Auch wenn es viele akzeptierte Antworten, ich glaube, auf diese Weise auch möglich ist:

Erstellen Sie Ihre Tabelle 'Server' wie folgt :

CREATE TABLE `servers` 
(
     id int(11) NOT NULL PRIMARY KEY auto_increment, 
     server_name varchar(45) NOT NULL, 
     online_status varchar(45) NOT NULL, 
     _exchange varchar(45) NOT NULL, 
     disk_space varchar(45) NOT NULL, 
     network_shares varchar(45) NOT NULL, 
     date_time datetime NOT NULL DEFAULT CURRENT_TIMESTAMP 
); 

Und Ihre INSERT Aussage sollte :

INSERT INTO servers (server_name, online_status, _exchange, disk_space, network_shares) 
VALUES('m1', 'ONLINE', 'ONLINE', '100GB', 'ONLINE'); 
sein

Meine Umwelt:

Core i3 Windows-Laptop mit 4 GB RAM, und ich habe das obige Beispiel auf MySQL Workbench 6.2 (Version 6.2.5.0 397 64 Bits) Erstellen

1

In Datenbank-Design, iIhighly empfehlen Verwendung von Unixtime für die Konsistenz und Indizierung/Suche/Vergleichsleistung.

UNIX_TIMESTAMP() 

Man kann immer convert to human readable Formate danach internationalisieren, als einzeln am bequemsten ist.

FROM_ UNIXTIME (unix_timestamp, [format ]) 
1
INSERT INTO servers (server_name, online_status, exchange, disk_space, network_shares) 
VALUES('m1','ONLINE','exchange','disk_space','network_shares', NOW()) 
1

Wenn Sie ändern Standardwert CURRENT_TIMESTAMP es ist mehr effiency,

ALTER TABLE servers MODIFY COLUMN network_shares datetime NOT NULL DEFAULT CURRENT_TIMESTAMP;