¿Puede MySQL convertir una hora UTC almacenada a una zona horaria local?

¿Puede MySQL convertir una hora UTC almacenada en hora local: tiempo ed directamente en una instrucción de selección normal?

Digamos que tiene algunos datos con una marca de tiempo (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`)
)

Entonces cuando yo

"select value, date from SomeDateTable";

Por supuesto, obtengo todas las fechas en su forma UTC almacenada.

Pero digamos que me gustaría tenerlos en otra zona horaria (con DST), ¿puedo agregar algo de magia a la consulta de selección para que recupere todas las fechas en la zona horaria seleccionada?

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

¿O debo hacer esto en alguna otra capa en la parte superior, como en algún código php? (parece ser cómo la mayoría de la gente ha resuelto este problema).

Gracias Johan

Si su instalación de MySQL le permite usar CONVERT_TZ, es una solución muy limpia, este ejemplo muestra cómo usarla.

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

Sin embargo, no sé si esta es una buena manera ya que a algunas instalaciones de MySQL les falta esta función, úsela con cuidado.

Respuestas a la pregunta(5)

Su respuesta a la pregunta