Gibt es eine MySQL-Funktion, mit der ein Unix-Zeitstempel in ein lesbares Datum konvertiert werden kann? Ich habe ein Feld, in dem ich Unix-Zeiten speichere, und jetzt möchte ich ein weiteres Feld für von Menschen lesbare Daten hinzufügen.
mysql
unix-timestamp
König Julien
quelle
quelle
Antworten:
Verwendung
FROM_UNIXTIME()
:Siehe auch: MySQL-Dokumentation zu
FROM_UNIXTIME()
.quelle
from_unixtime
: dev.mysql.com/doc/refman/5.1/en/…TO_UNIXTIME
, aber stattdessenUNIX_TIMESTAMP
.Was in den anderen Antworten (zum Zeitpunkt dieses Schreibens) fehlt und nicht direkt offensichtlich ist,
from_unixtime
ist, dass ein zweiter Parameter erforderlich sein kann, um das Format wie folgt anzugeben:quelle
Ich denke, was Sie suchen, ist
FROM_UNIXTIME()
quelle
Benötigen Sie einen Unix-Zeitstempel in einer bestimmten Zeitzone?
Hier ist ein Einzeiler, wenn Sie schnellen Zugriff auf die MySQL-CLI haben:
Ersetzen Sie
'MST'
durch Ihre gewünschte Zeitzone. Ich lebe in Arizona - also die Umstellung von UTC auf MST.quelle
Warum das Feld als lesbar speichern? Nur wir
AS
EDIT: Sorry, wir speichern alles in Millisekunden, nicht in Sekunden. Behoben.
quelle
Sie können die Funktion DATE_FORMAT verwenden. Hier ist eine Seite mit Beispielen und den Mustern, mit denen Sie verschiedene Datumskomponenten auswählen können.
quelle
Einfacher und einfacher Weg:
select from_unixtime(column_name, '%Y-%m-%d') from table_name
quelle
Da mir diese Frage nicht bewusst war, dass MySQL immer Zeit in Zeitstempelfeldern in UTC speichert, aber (z. B. phpmyadmin) in der lokalen Zeitzone angezeigt wird, möchte ich meine Ergebnisse hinzufügen.
Ich habe ein automatisch aktualisiertes Feld last_modified, definiert als:
Wenn man es mit phpmyadmin betrachtet, sieht es so aus, als wäre es in der Ortszeit, intern ist es UTC
In jeder Konstellation werden UNIX_TIMESTAMP und 'as UTC' immer in UTC-Zeit angezeigt.
Führen Sie dies zweimal aus, ohne die Zeitzone festzulegen.
quelle