2012-07-26 108 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