O MySQL pode converter uma hora UTC armazenada em fuso horário local?

O MySQL pode converter um horário UTC armazenado no fuso horário local diretamente em uma instrução normal de seleção?

Digamos que você tenha alguns dados com um carimbo de data / hora (UTC).

CREATE TABLE `SomeDateTable` (
  `id`    int(11) NOT NULL auto_increment,
  `value` float NOT NULL default '0',
  `date`  datetime NOT NULL default '0000-00-00 00:00:00',
  PRIMARY KEY  (`id`)
)

Então quando eu

"select value, date from SomeDateTable";

Obviamente, recebo todas as datas como em seu formulário UTC armazenado.

Mas digamos que eu gostaria de tê-los em outro fuso horário (com horário de verão), posso adicionar um pouco de mágica à consulta de seleção para recuperar todas as datas no fuso horário selecionado?

"select value, TIMEZONE(date, "Europe/Berlin") from SomeDateTable";

Ou devo fazer isso em alguma outra camada no topo, como em algum código php? (parece que a maioria das pessoas resolveu esse problema).

Obrigado Johan

Se sua instalação do MySQL permite que você use CONVERT_TZ, é uma solução muito limpa, este exemplo mostra como usá-lo.

SELECT CONVERT_TZ( '2010-01-01 12:00', 'UTC', 'Europe/Stockholm' )

No entanto, não sei se essa é uma boa maneira, pois algumas instalações do MySQL estão sem essa função, use com cuidado.

questionAnswers(5)

yourAnswerToTheQuestion