如何在mysql语句中转换时区

时间:2013-10-03 08:07:17

标签: php mysql sql

我正在尝试使用mysql将unix时间戳转换为本地时间。

我正在尝试的声明是:

SELECT CONVERT_TZ('FROM_UNIXTIME(table1.timestamp)', 'GMT', 'MET' ),table1.COL2,table1.COL3 WHERE table1ID ='3'

返回NULL

我更喜欢直接在mysql中执行此操作,而不是稍后使用php操作输出以使代码的其他部分保持简单。

提前感谢您的帮助。

2 个答案:

答案 0 :(得分:2)

尝试删除'FROM_UNIXTIME(table1.timestamp)'上的引文,如:

SELECT CONVERT_TZ(FROM_UNIXTIME(table1.timestamp), 'GMT', 'MET' ),table1.COL2,table1.COL3 WHERE table1ID ='3'

答案 1 :(得分:0)

FROM_UNIXTIME(table1.timestamp)周围的引号会生成一个字符串,看起来不像日期。您必须删除引号才能使其成为函数调用。

完成后,您仍可能获得NULL。 通过运行测试查询来测试它:SELECT CONVERT_TZ('2004-01-01 12:00:00','GMT','MET');

如果仍然获得NULL,则可能需要设置时区表。 请参阅MySQL documentation on topic