如果产生的结果为空,则尚未设置TZ表:
SELECT CONVERT_TZ(now(),'US/Eastern','US/Central'); 如果您没有设置时区表,则可以更新用户表中的小时偏移量,然后执行以下操作:
select utc_timezone() - interval user_timezone_offset_in_hours hour from userinfo a where user_id = 999; 但是,您仍然需要一种方法来更新用户的时区。
如果您是为Web应用程序编写此代码,则可以通过javascript获取时区,这是一篇文章,介绍了如何进行操作(没有尝试过,但是看起来可以使用)。
关于上述“间隔”的一些解释...
MySQL中更技巧性的结构之一是INTERVAL 关键字的使用,如示例所示(数字值可以是表达式或字段值)
select now() today, now() - interval 1 day yesterday; +---------------------+---------------------+ | today | yesterday | +---------------------+---------------------+ | 2011-05-26 13:20:55 | 2011-05-25 13:20:55 | +---------------------+---------------------+ 您可以随意添加和减去它们,这就是为什么我从不 理会日期/时间的加/减/转换功能
select now() a, now() - interval 1 day + interval 4 hour + interval 8 minut