Die Apokalypse kommt

Es gibt ein solches Problem - im Jahr 2038 wird die Anzahl der Sekunden ab dem Beginn der Unix-Zeit-Ära den Wert von signiertem int überschreiten und verschwinden. Dies ist wie das Problem von 2000 nur viel komplizierter, weil Sie dafür den Datentyp ändern müssen.

Also ... in MySQL hängt seit viereinhalb Jahren eine Anfrage, um die Funktionen UNIX_TIMESTAMP und FROM_UNIXTIME zu reparieren, die keine Daten nach dem 19. Januar 2038 verarbeiten können. Dies sind Funktionen zum Konvertieren von Daten nach Unixtime und umgekehrt.

Dies zu überprüfen ist ganz einfach: Probieren Sie diese Abfrage aus.

select unix_timestamp('2038-01-20'); 

Im Jahr 2017 hat eine freundliche Person versucht, das Problem zu beheben, aber der Patch wurde nie akzeptiert. Probleme mit Zeitzonen und Unterstützung für 32-Bit-Systeme.

Ein Umstieg auf MariaDB ist ebenfalls nicht möglich: Dort ist dieser Bug bereits als zu kompliziert abgeschlossen.

Die Apokalypse kommt und wir können nur für diese Entwickler beten.

PS Nun im Ernst: In der Dokumentation steht eine Warnung, dass der TIMESTAMP-Typ nach 2038 zu einem Kürbis wird. Aber niemand warnte vor Zeitumrechnungsfunktionen. Es stellt sich heraus, dass alle Unix- und viele Programmiersprachen bereits auf 64-Bit-Zeitstempel umgestellt haben und nur MySQL-Funktionen Unixtime ohne ersichtlichen Grund nicht mehr verstehen.

Source: https://habr.com/ru/post/de485546/


All Articles