2015-06-02 27 views
0

如何在输出上添加时区显示?当它的PDT,我想它说PDT,并且它的PST自动更改为PST。在mysql的输出显示中添加PDT或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

mysql日期/时间值不包括TZ值。你必须告诉mysql在字符串格式化时应用什么时区。 –

回答

1

的MySQL没有按不存储时区,因此您拥有的DATETIME值不包含时区。您必须分别存储时区。

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

如果您需要将DATETIME转换为其他时区,则应该将DATETIME存储为UTC,并将时区存储为完整的tz-name,如“America/New_York”。然而,你可能需要使用一种编程语言来处理所有这些,比如Pyhton,Ruby,PHP,Java,因为SQL通常不会有非常好的时区支持,AFAIK对于MySQL也是如此。