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.