Ich habe ein Feld in einer MySQL-Tabelle, die eine hat timestamp Datentyp. Ich speichere Daten in dieser Tabelle. Aber wenn ich den Zeitstempel übergebe (1299762201428) in den Datensatz, wird der Wert automatisch gespeichert 0000-00-00 00:00:00 in diese Tabelle.
Wie kann ich den Zeitstempel in einer MySQL-Tabelle speichern?
Hier ist mein INSERT Aussage:
INSERT INTO table_name (id,d_id,l_id,connection,s_time,upload_items_count,download_items_count,t_time,status)
VALUES (1,5,9,'2',1299762201428,5,10,20,'1'),
(2,5,9,'2',1299762201428,5,10,20,'1')
Welcher Zeitstempel du sprichst über? Wo hast du es bekommen?
– Ihr gesunder Menschenverstand
12. April 2011 um 9:05 Uhr
Kannst du deine Tabellenstruktur hier einfügen?
– Benutzer319198
12. April 2011 um 9:06 Uhr
so durchgehen
date('Y-m-d H:i:s','1299762201428')
aber der Wert, den Sie in db erhalten, zeigt den Spaltentyp an datetimewenn Sie es ändern möchten timestamp Ändern Sie dann den Spaltentyp in varchar(15)
– Jimy
12. April 2011 um 8:57 Uhr
Setzen Sie es dann auf ein INT-Feld. Wie auch immer, ein Zeitstempel ist nur eine Darstellung eines Datums und umgekehrt. Sie können mit der Funktion, die jimy Ihnen gesagt hat, vom Zeitstempel zum Datum konvertieren und umgekehrt mit strtotime. Bearbeiten: Übrigens, der Zeitstempel deckt nur einen Bereich aller möglichen Daten ab (1970-01-01 bis xx-xx-2032, glaube ich)
– Carlos Campderros
12. April 2011 um 8:58 Uhr
Was ist also die Verwendung des Zeitstempel-Datentyps? Das Feld s_time hat den Datentyp timestamp. Kann ich 1299762201428 nicht in diesem Feld speichern?
@lakum4stackof – Die Verwendung von Zeitstempel besteht darin, dass Sie den Zeitstempel speichern, er wird jedoch nur als Datum angezeigt. Intern (wie alle Datentypen) wird es als vorzeichenbehaftete Ganzzahl gespeichert. Wenn Sie diesen Zeitstempel auch als Ganzzahl formatieren möchten, schlage ich vor, dass Sie dann nur das INT-Feld verwenden. Die Verwendung der Zeitstempelspalte ist die Datumsmanipulation (Hinzufügen von Intervallen und dergleichen).
– Michael JV
12. April 2011 um 9:06 Uhr
Richard Tuin
Hallo, benutze die FROM_UNIXTIME() Funktion dazu.
So was:
INSERT INTO table_name
(id,d_id,l_id,connection,s_time,upload_items_count,download_items_count,t_time,status)
VALUES
(1,5,9,'2',FROM_UNIXTIME(1299762201428),5,10,20,'1'),
(2,5,9,'2',FROM_UNIXTIME(1299762201428),5,10,20,'1')
Warum ist das besser als date('Y-m-d H:i:s','1299762201428')?
– Juri
16. Mai 2016 um 7:27 Uhr
Typ Sicherheit: FROM_UNIXTIME ergibt einen nativen mysql-Datumstyp, während php’s date() gibt eine Zeichenfolge zurück.
– Richard Tuin
20. Mai 2016 um 6:19 Uhr
Es ist besser, weil Webserver ( PHP ) und MySQL an verschiedenen Orten sein könnten. date(‘Ymd H:i:s’,’1299762201428′) legt also die Zeitzone des Webservers fest. Wenn verschiedene Webserver in verschiedenen Zonen platziert sind, werden Sie inkonsistente Daten haben. Alternativ müssen Sie in Ihrem Code die Zeitzone der Anwendung auf die Zeitzone von MySQL zwingen. date_timezone_set
Sie können verwenden now() auch in Ihrer Abfrage, dh:
insert into table (time) values(now());
Es wird der aktuelle Zeitstempel verwendet.
Rollender Junge
Datentyp ‘bigint ohne Vorzeichen“ kann dieser Anforderung entsprechen.
Ich vermute, dass das Feld, in dem Sie den Wert speichern möchten, ein Datetime-Feld ist es ist nicht, aber das gleiche scheint für Zeitstempel zu gelten. In diesem Fall erwartet mysql das Format Jahr-Monat-Tag Stunde:Minute:Sekunde. Um den Zeitstempel zu speichern, müssen Sie das Feld mit einer Abfrage wie z
alter table <table_name> change <field> <field> bigint unsigned
Wenn Sie die aktuelle Zeit verwenden, können Sie now() oder current_timestamp verwenden.
13556700cookie-checkZeitstempel in MySQL-Tabelle mit PHP speichernyes
Welcher Zeitstempel du sprichst über? Wo hast du es bekommen?
– Ihr gesunder Menschenverstand
12. April 2011 um 9:05 Uhr
Kannst du deine Tabellenstruktur hier einfügen?
– Benutzer319198
12. April 2011 um 9:06 Uhr