如何在 mysql 语句中转换时区


How to convert time zone within mysql statement

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

我正在尝试的陈述是:

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

它返回NULL .

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

提前感谢任何帮助。

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

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

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

完成此操作后,您仍然可能会得到NULL。通过运行测试查询进行测试:SELECT CONVERT_TZ('2004-01-01 12:00:00','GMT','MET');

如果仍然NULL,则可能需要设置时区表。请参阅有关主题的 MySQL 文档。