Eu pensei que isso poderia ser útil:
Existem três locais onde o fuso horário pode ser definido no MySQL:
No arquivo "my.cnf" na seção [mysqld]
default-time-zone='+00:00'
variável @@ global.time_zone
Para ver em que valor eles estão definidos:
SELECT @@global.time_zone;
Para definir um valor para ele, use um dos seguintes:
SET GLOBAL time_zone = '+8:00';
SET GLOBAL time_zone = 'Europe/Helsinki';
SET @@global.time_zone = '+00:00';
(Usar fusos horários nomeados como 'Europa / Helsinque' significa que você precisa ter uma tabela de fuso horário devidamente preenchida.)
Lembre-se de que +02:00
é um deslocamento. Europe/Berlin
é um fuso horário (que possui duas compensações) e CEST
uma hora do relógio que corresponde a um deslocamento específico.
variável @@ session.time_zone
SELECT @@session.time_zone;
Para configurá-lo, use um dos seguintes:
SET time_zone = 'Europe/Helsinki';
SET time_zone = "+00:00";
SET @@session.time_zone = "+00:00";
Ambos podem retornar SYSTEM, o que significa que eles usam o fuso horário definido em my.cnf.
Para que os nomes de fuso horário funcionem, você deve configurar suas tabelas de informações de fuso horário: http://dev.mysql.com/doc/refman/5.1/en/time-zone-support.html . Menciono também como preencher essas tabelas nesta resposta .
Para obter o deslocamento do fuso horário atual como TIME
SELECT TIMEDIFF(NOW(), UTC_TIMESTAMP);
Ele retornará 02:00:00 se o seu fuso horário for +2: 00.
Para obter o registro de data e hora atual do UNIX:
SELECT UNIX_TIMESTAMP();
SELECT UNIX_TIMESTAMP(NOW());
Para obter a coluna do registro de data e hora como um registro de data e hora do UNIX
SELECT UNIX_TIMESTAMP(`timestamp`) FROM `table_name`
Para obter uma coluna de data e hora UTC como um carimbo de data / hora UNIX
SELECT UNIX_TIMESTAMP(CONVERT_TZ(`utc_datetime`, '+00:00', @@session.time_zone)) FROM `table_name`
Nota: Alterar o fuso horário não alterará a data e hora armazenadas , mas mostrará um diferente para as colunas de carimbo de data / hora existentes, pois elas são armazenadas internamente como carimbos de data / hora UTC e exibidas externamente no fuso horário atual do MySQL.
Fiz uma folha de dicas aqui: O MySQL deve ter seu fuso horário definido como UTC?
ntp
- e veja o que é certo para você!"