如果这产生null,则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获取时区,这里是一个article,描述如何(没有尝试过,但它看起来像它会工作)。
关于’间隔’的解释的一点上面…
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 minute b;
+---------------------+---------------------+
| a | b |
+---------------------+---------------------+
| 2011-05-26 13:24:16 | 2011-05-25 17:32:16 |
+---------------------+---------------------+
您可以使用负数(应该适合负时区偏移)
这些都是一样的:
select now() - interval 1 month a, now() + interval -1 month b;
+---------------------+---------------------+
| a | b |
+---------------------+---------------------+
| 2011-04-26 13:38:05 | 2011-04-26 13:38:05 |
+---------------------+---------------------+