O apocalipse está chegando

Existe esse problema - em 2038, o número de segundos desde o início da era do Unix Time excederá o valor de int assinado e desaparecerá. É como o problema do ano 2000, só que muito mais complicado, porque para isso você precisa alterar os tipos de dados.

Então ... no MySQL, há catorze anos e meio, foi suspensa uma solicitação para corrigir as funções UNIX_TIMESTAMP e FROM_UNIXTIME, que não podem processar datas após 19 de janeiro de 2038. Estas são funções para converter datas em Unixtime e vice-versa.

Verificar isso é bem simples: tente esta consulta.

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

Em 2017, uma pessoa amável tentou corrigi-lo, mas o patch nunca foi aceito. Problemas com fusos horários e suporte para sistemas de 32 bits.

Mudar para o MariaDB também não é uma opção: esse bug está fechado por ser muito complicado.

O apocalipse está chegando e só podemos orar ... por esses desenvolvedores.

PS Agora, sério: existe um aviso na documentação de que o tipo TIMESTAMP se transforma em abóbora depois de 2038. Mas ninguém avisou sobre as funções de conversão de tempo. Acontece que todo o Unix e muitas linguagens de programação já mudaram para carimbos de data e hora de 64 bits, e apenas as funções do MySQL deixarão de entender o Unixtime sem motivo aparente.

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


All Articles