Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

A alteração de um fuso horário do MySQL altera os valores dos campos DateTime em um banco de dados?


Em princípio não deveria. Existem várias razões pelas quais ele não deve mudar, dependendo do tipo de seus valores:principalmente DATETIME e TIMESTAMP.

Os valores DATETIME nunca são convertidos, portanto, são independentes do fuso horário.

Os valores TIMESTAMP são convertidos (citação direta do manual aqui --- suponho que você tenha uma versão bastante recente do MySQL) "do fuso horário atual para UTC para armazenamento e de volta do UTC para o fuso horário atual para recuperação. não ocorre para outros tipos, como DATETIME.) Por padrão, o fuso horário atual para cada conexão é o horário do servidor. O fuso horário pode ser definido por conexão. Contanto que a configuração do fuso horário permaneça constante, você recuperar o mesmo valor armazenado. Se você armazenar um valor TIMESTAMP e, em seguida, alterar o fuso horário e recuperar o valor, o valor recuperado será diferente do valor armazenado. Isso ocorre porque o mesmo fuso horário não foi usado para conversão em ambas direcoes." (de http://dev.mysql.com/doc/refman /5.5/en/datetime.html ).

Portanto, em ambos os casos, os dados realmente armazenados no servidor não mudam (como deveria ser), mas os valores que suas consultas mostrarão podem ser diferentes antes e depois.