Kiamat akan datang

Ada masalah seperti itu - pada tahun 2038, jumlah detik dari awal era Unix Time akan melebihi nilai int yang ditandatangani dan menghilang. Ini seperti masalah tahun 2000, hanya jauh lebih rumit, karena untuk itu Anda perlu mengubah tipe data.

Jadi ... di MySQL, selama empat belas setengah tahun, permintaan telah digantung untuk memperbaiki fungsi UNIX_TIMESTAMP dan FROM_UNIXTIME, yang tidak dapat memproses tanggal setelah 19 Januari 2038. Ini adalah fungsi untuk mengubah tanggal menjadi Unixtime dan sebaliknya.

Memeriksa ini cukup sederhana: coba kueri ini.

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

Pada 2017, orang yang baik hati mencoba memperbaikinya, tetapi tambalan itu tidak pernah diterima. Masalah dengan zona waktu dan dukungan untuk sistem 32-bit.

Beralih ke MariaDB juga bukan pilihan: di sana bug ini sudah ditutup karena terlalu rumit.

Kiamat akan datang dan kita hanya bisa berdoa ... untuk para pengembang ini.

PS Sekarang, serius: ada peringatan dalam dokumentasi bahwa tipe TIMESTAMP berubah menjadi labu setelah 2038. Tetapi tidak ada yang memperingatkan tentang fungsi konversi waktu. Ternyata semua Unix dan banyak bahasa pemrograman telah beralih ke cap waktu 64-bit, dan hanya fungsi MySQL yang akan berhenti memahami Unixtime tanpa alasan yang jelas.

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


All Articles