Heim >Datenbank >MySQL-Tutorial >Wie konvertiere ich Epochenzahlen in für Menschen lesbare Daten in MySQL?

Wie konvertiere ich Epochenzahlen in für Menschen lesbare Daten in MySQL?

Barbara Streisand
Barbara StreisandOriginal
2024-10-26 16:28:031015Durchsuche

How to Convert Epoch Numbers to Human-Readable Dates in MySQL?

Konvertieren von Epochennummern in für Menschen lesbare Daten in MySQL

Im Bereich der Datenbankverwaltung ist es häufig erforderlich, Epochennummern in für Menschen lesbare Daten umzuwandeln. Epochennummern, die einen Zeitpunkt seit einer definierten Epoche darstellen, werden häufig zum Speichern von Zeitdaten in Datenbanksystemen wie MySQL verwendet.

Stellen Sie sich das hypothetische Szenario vor, in dem Sie eine Epochennummer wie 1389422614485 haben, die Folgendes darstellt einen bestimmten Zeitpunkt. Der Datentyp dieses Werts ist varchar, und Sie möchten ihn in ein verständliches Datumsformat umwandeln.

Detaillierte Lösung

Um diese Konvertierung in MySQL durchzuführen, müssen Sie Folgendes tun Sie müssen eine Kombination aus mathematischen Funktionen und der Funktion from_unixtime() nutzen:

<code class="sql">mysql> select from_unixtime(floor(1389422614485/1000));</code>

Erklärung

In diesem Beispiel wird die Funktion from_unixtime() zum Konvertieren verwendet die Epochennummer, die normalerweise die Millisekunden seit der Epoche darstellt, in eine Datumszeichenfolge. Da unsere Epochennummer eine Millisekundengenauigkeit zu haben scheint, verwenden wir floor(1389422614485/1000), um sie in Sekunden seit der Epoche umzuwandeln, was die Eingabe ist, die from_unixtime() erwartet.

Ausgabe

+------------------------------------------+
| from_unixtime(floor(1389422614485/1000)) |
+------------------------------------------+
| 2014-01-11 12:13:34                      |
+------------------------------------------+

Die Ausgabe zeigt das menschenlesbare Datum an, das der angegebenen Epochennummer entspricht, im Format „JJJJ-MM-TT HH:MM:SS“.

Update für MySQL 8.0 und höher

Ab MySQL Version 8.0 ist die Floor-Funktion nicht mehr erforderlich, wenn in der Funktion from_unixtime() mit Millisekunden gearbeitet wird. Sie können die Epochennummer in Millisekunden direkt als Argument angeben:

<code class="sql">mysql> select from_unixtime(1594838230234/1000);</code>

Dies ergibt die folgende Ausgabe:

+------------------------------------------+
| from_unixtime(1594838230234/1000)        |
+------------------------------------------+
| 2020-07-15 18:37:10.2340                 |
+------------------------------------------+

Diese verfeinerte Version der Abfrage unterstützt jetzt auch Nanosekundengenauigkeit .

Das obige ist der detaillierte Inhalt vonWie konvertiere ich Epochenzahlen in für Menschen lesbare Daten in MySQL?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn