dedlfix: MySQL Datum-Funktionen

Beitrag lesen

Hi!

time_t ist idR. auf 32 Bit signed beschränkt, in MySQL sind es 32 bit unsigend - das schränkt den Wertebereich in dem du produktiv arbeiten kannst auf etwa 68 Jahre ein (1970 bis 2038).
Es ist irrelevant, wie MySQL über Timestamps denkt, wenn er nur einen Integer-Wert speichert.
Nein, es ist relevant wenn man den Datums- und Zeitfunktionen arbeiten will - die Spielerein die ChrisB angesprochen hat sind durchaus auch mit Timestamps möglich, man muss halt zuerst mit FROM_UNIXTIME() konvertieren und kann dann weiterarbeiten.

Genau, erst wenn die Umrechnung ins Spiel kommt, wird es relevant. Aber wer will ständig umrechnen müssen? Dann lieber gleich ordentliche DATE(TIME)-Werte verwenden.

Egal was MySQL darüber denkt, ein Timestamp ist auch in anderen Systemen in der Regel kein geeigneter Typ für beliebige Zeitwerte. Ein Timestamp ist dafür gedacht, kostengünstig (4 Byte) eine aktuelle Zeit festzuhalten, und dafür ist der Zeitraum ab 1970 ausreichend, weil es davor keine Systeme gab, die dieses Format verwendeten. Dass er mit 4 Byte im Jahr 2038 aufhört, war der Kompromiss zu den damaligen Kosten für Speicher. Wer einen Timestamp für etwas anderes als das Festhalten der aktuellen Zeit verwendet, hat noch Verbesserungspotential (und sei es, dass er das System austauschen muss, das nur diesen Typ anbietet).

Lo!