mysql – 即使在加载时区表后,convert_tz也返回null

我有一个
MySQL数据库(托管在Ubuntu上),它有一个带时区的表.此日期位于UTC时区.我有一个使用此数据的应用程序但需要将时间从UTC转换为PST以便以有用的格式显示数据.

这可能在应用程序级别上有所改变,但我目前没有时间这样做,所以我想要做的是使用convert_tz获取正确的时区,直到我有时间更改应用程序来转换时间区.

但是,每当我做某事时

SELECT id, 
       category, 
       convert_tz(create_datetime, 'UTC', 'PST') as create_datetime
FROM table

我得到了一个结果

1, category, NULL

我知道我需要加载时区表,所以我做了,运行这个命令:

mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root -p mysql

之后我重新启动了mysql服务.但是,convert_tz仍然返回NULL.有人可以帮我一把吗?

谢谢!

最佳答案 确保create_datetime列的类型为timestamp

请参考这个http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_convert-tz.

SELECT CONVERT_TZ(‘2004-01-01 12:00:00′,’GMT’,’MET’);

点赞