Achei que isso poderia ser útil:
Existem três lugares onde o fuso horário pode ser definido no MySQL:
No arquivo "my.cnf" na seção [mysqld]
default-time-zone='+00:00'
@@global.time_zone variável
Para ver qual valor eles estão definidos:
SELECT @@global.time_zone;
Para definir um valor para ele, use qualquer um:
SET GLOBAL time_zone = '+8:00';
SET GLOBAL time_zone = 'Europe/Helsinki';
SET @@global.time_zone = '+00:00';
(Usar fusos horários nomeados como 'Europe/Helsinki' significa que você precisa ter uma tabela de fuso horário preenchida corretamente.)
Lembre-se de que
+02:00
é um deslocamento. Europe/Berlin
é um fuso horário (que tem dois deslocamentos) e CEST
é uma hora do relógio que corresponde a um deslocamento específico. @@session.time_zone variável
SELECT @@session.time_zone;
Para configurá-lo, use qualquer um:
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 que precisam ser preenchidas:http://dev.mysql.com/doc/refman/5.1/en/time-zone-support.html . Também mencionei como preencher essas tabelas esta resposta .
Para obter o deslocamento de fuso horário atual como TIME
SELECT TIMEDIFF(NOW(), UTC_TIMESTAMP);
Ele retornará 02:00:00 se seu fuso horário for +2:00.
Para obter o timestamp atual do UNIX:
SELECT UNIX_TIMESTAMP();
SELECT UNIX_TIMESTAMP(NOW());
Para obter a coluna timestamp como um timestamp 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`
Observação:alterar o fuso horário não alterará a data/hora ou o carimbo de data/hora armazenados , mas mostrará uma data e hora diferente para 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.
Eu fiz uma folha de dicas aqui:O MySQL deve ter seu fuso horário definido como UTC?