Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Wie speichere ich das Datum in Unix-Millisekunde in Mysql?

Nicht. DateTime Werte sollten als DateTime gespeichert werden , es sei denn, Sie haben einen wirklich guten Grund, sie anderweitig zu speichern (z. B. um Datums- und Zeitwerte außerhalb der Min/Max-Werte von DateTime zu unterstützen ), würde ich vorschlagen, es in einem DateTime zu belassen Säule.

Sie können jederzeit manipulieren, wie Sie sie während Select aus der Datenbank zurückgeben oder in der Präsentationsebene. Um die Unix-Zeit von DateTime zurückzugeben , bietet MySql eine eingebaute Methode namens UNIX_TIMESTAMP . Um die Anzahl der Millisekunden zurückzugeben, multiplizieren Sie einfach mit 1000, da der Unix-Zeitstempel die Anzahl der Sekunden seit dem 1. Januar 1970 ist (ohne Schaltsekunden). Wenn Sie die Unix-Zeit speichern möchten, müssen Sie einen int-Datentyp verwenden.

Bitte beachten Sie, dass, wenn Sie die Unix-Zeit speichern, anstatt die tatsächliche DateTime zu speichern Wert in einem DateTime Datentyp-Spalte, verlieren Sie die Fähigkeit, alle eingebauten Datetime-Datenbankfunktionen einfach zu verwenden. Wenn Sie beispielsweise herausfinden möchten, wie viele Zeilen zu einem bestimmten Monat gehören, müssen Sie zuerst die Daten von int nach datetime übersetzen, und erst dann können Sie das berechnen.

Sie verlieren auch an Genauigkeit (da die Unix-Zeit selbst bei einer Auflösung von 1 Sekunde ungenau ist, da Schaltsekunden ignoriert werden).

Also, zum Schluss – Wenn die Datenbank Ihnen einen Datentyp anbietet, der zu den Daten passt, speichern Sie diese Daten nicht mit einem anderen Datentyp. Verwenden Sie das Date Datentyp, wenn Sie nur Datumsangaben speichern möchten, die DateTime Datentyp, wenn Sie datetime-Werte speichern möchten, und den Time Datentyp, wenn Sie eine bestimmte Tageszeit speichern möchten.

P.S.
Beim Umgang mit Datums- und Zeitwerten, insbesondere wenn Sie mit Kunden von mehreren Standorten zu tun haben, speichern Sie IMMER nur UTC-Datumszeiten in Ihrer Datenbank, außer natürlich, du willst verrückt werden.