2012-07-26 72 views
2

我跑在MySQL的这一说法,并在每行,返回null:我在MySQL STR_TO_DATE被返回null

SELECT STR_TO_DATE('Fri, 22 Jun 2012 03:35:24 +0000', '%a, %e %b %Y %H:%i:%s %%%%%%%%%%') FROm t2; 

我不知道该+0000权符。它应该是什么?

+0

从MySQL手册:[“格式中可以使用的说明符请参阅DATE_FORMAT()函数说明。”](http://dev.mysql.com/doc/refman/5.5/zh-cn/date -and-time-functions.html#function_str-date-date):http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_date-format – feeela 2012-07-26 17:07:08

回答

3

+0000是时区偏移量。

mySQL不理解时区的概念,并且STR_TO_DATEthe list of date/time format placeholders显然也没有提及时区。

如果您期望来自不同时区的日期,这似乎不能在mySQL的帮助下解决。你必须在其他地方预处理日期,将其变成一个,即UTC始终为 UTC(或当地时区,无论适用),还是已经始终是UTC,ManseUK的建议(将+0000添加到格式字符串中,以便mySQL忽略它)应该工作。

+0

已删除我的回答当我读你的评论 - 它可能是一个不好的主意,忽略它... – ManseUK 2012-07-26 17:10:18

+0

+1在使用MySQL时始终使用UTC并通过应用程序设置时区。 – feeela 2012-07-26 17:15:36