简体   繁体   English

如何在mysql语句中转换时区

[英]How to convert time zone within mysql statement

I am trying to convert a unix timestamp into a local time using mysql. 我正在尝试使用mysql将unix时间戳转换为本地时间。

The statement I am trying is: 我正在尝试的语句是:

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

It returns NULL . 它返回NULL

I would prefer to do this directly in mysql rather than manipulating the output later using php to keep other parts of my code simple. 我宁愿直接在mysql中执行此操作,而不是稍后使用php操作输出以使代码的其他部分保持简单。

Thanks in advance for any help. 在此先感谢您的帮助。

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

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

Quotes around FROM_UNIXTIME(table1.timestamp) make that a string, which does not look like a date. FROM_UNIXTIME(table1.timestamp)周围的FROM_UNIXTIME(table1.timestamp)使该字符串看起来不像日期。 You have to remove the quotes to make it a function call. 您必须删除引号以使其成为函数调用。

Once that is done, you still might get NULL . 一旦完成,您仍然可能会得到NULL Test it out by running a test query: SELECT CONVERT_TZ('2004-01-01 12:00:00','GMT','MET'); 通过运行测试查询来测试它: SELECT CONVERT_TZ('2004-01-01 12:00:00','GMT','MET');

If you still get NULL , you probably need to set up your time zone tables. 如果仍然得到NULL ,则可能需要设置时区表。 See MySQL documentation on topic . 请参阅有关主题的MySQL文档

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM