2

mysql でこのステートメントを実行すると、すべての行で null が返されます。

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

の正しい指定子がわかりません+0000。それは何ですか?

4

1 に答える 1

3

+0000はタイムゾーンオフセットです。

mySQLはタイムゾーンの概念を理解しておらず、明らかにどちらも理解していませんSTR_TO_DATE日付/時刻形式のプレースホルダーのリストには、タイムゾーンがまったく記載されていません。

さまざまなタイムゾーンの日付が予想される場合、これはmySQLだけでは解決できないようです。日付を他の場所で前処理して、常にUTC(または該当する場合はローカルタイムゾーン)になるようにする必要があります。または、すでにUTCである場合は、ManseUKの提案(+0000フォーマット文字列に追加してmySQLが無視する)を行う必要があります。仕事。

于 2012-07-26T17:07:53.327 に答える