Может ли MySQL преобразовать сохраненное время UTC в местное время: редактировать время непосредственно в обычном операторе выбора?
Допустим, у вас есть некоторые данные с отметкой времени (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`)
)
Тогда, когда я
"select value, date from SomeDateTable";
Я, конечно, получаю все даты как в сохраненной форме UTC.
Но скажем, я бы хотел, чтобы они были в другом часовом поясе (с летним временем),
затем я могу добавить магию в запрос на выборку, чтобы получить все даты в выбранном часовом поясе?
"select value, TIMEZONE(date, "Europe/Berlin") from SomeDateTable";
Или я должен сделать это в каком-то другом слое сверху, как в каком-то php-коде?
(похоже, что большинство людей решили эту проблему).
Спасибо
Johan
Если ваша установка MySQL позволяет вам использовать CONVERT_TZ, это очень чистое решение,
этот пример показывает, как его использовать.
SELECT CONVERT_TZ( '2010-01-01 12:00', 'UTC', 'Europe/Stockholm' )
Однако я не знаю, является ли это хорошим способом, поскольку в некоторых установках MySQL отсутствует эта функция, используйте с осторожностью.