在mysql的输出显示中添加PDT或PST

时间:2015-06-02 19:02:11

标签: mysql timezone

如何在输出中添加时区显示?当它的PDT,我希望它说PDT,如果它的PST自动改为PST。

这是我当前的查询

SELECT IF (DAYOFWEEK( CURDATE() ) = 1, DATE_FORMAT(DATE_ADD(curdate(), INTERVAL 2 DAY), "%h:%i %p"), DATE_FORMAT(CURDATE(), "%h:%i %p"))

这是

的输出
12:00 AM

如果我可以输出时区并且像

那样会很棒
12:00 AM PDT or 12:00 AM PST

1 个答案:

答案 0 :(得分:1)

MySQL不存储时区,因此您拥有的DATETIME值不包含时区。您必须单独存储时区。

一点警告:如果您将时区存储为“PST”或“PDT”,它将很容易显示,但很难转换为其他时区,因为“PST”不是唯一的,有几个不同的时间带有缩写的区域。

如果您需要将DATETIME转换为其他时区,您可能应该将DATETIME存储为UTC,并使用它的完整tz名称存储时区,例如“America / New_York”。但是,您可能需要使用编程语言来处理所有这些,例如Pyhton,Ruby,PHP,Java,因为SQL通常没有非常好的时区支持,而AFAIK也适用于MySQL。