我的mysql数据库表中有一个字符串列,它以毫秒为单位存储字符串,现在我想将Date显示为ISO 8601格式,如2012-03-12T14:11:23-0400,选择查询为
SELECT DATE_FORMAT(TIMESTAMP(response_time),"%Y-%m-%dT%H:%i:%s%Q") AS date FROM table_name;
但它没有显示时区,以上查询的结果
2012-10-29T14:55:47Q
但我想要的实际结果是
2012-10-29T14:55:47-05:00
答案 0 :(得分:1)
%Q
不是MySQL中的有效日期说明符。
可以通过以下方式访问MySQL中的时区:
SELECT @@global.time_zone, @@session.time_zone
如果上面的返回SYSTEM
,则意味着MySQL被设置为使用系统的时区,并且必须通过MySQL以外的方式直接检索它。
也就是说,这只会告诉您系统当前正在运行的时区,而不是存储日期/时间值的日期与任何有关时区的信息一起存储。