0

以下に示すように、年は 00 年ではなく、現在の年として選択されることが期待されます。

mysql> select str_to_date('Jul 15 12:12:51', '%b %e %T');
+--------------------------------------------+
| str_to_date('Jul 15 12:12:51', '%b %e %T') |
+--------------------------------------------+
| 0000-07-15 12:12:51                        |
+--------------------------------------------+

期待される結果:

| 2013-07-15 12:12:51                        |
4

2 に答える 2

3

まあ、それは意図したものです。ドキュメントの引用:

指定されていない日付または時刻の部分の値は 0 であるため、str で不完全に指定された値は、一部またはすべての部分が 0 に設定された結果を生成します。モードは、そのような値を許可しないように設定されています。

修正は簡単です。

select str_to_date(CONCAT(YEAR(NOW()), ' ', 'Jul 15 12:12:51'), '%Y %b %e %T');
-- July, 15 2013 12:12:51+0000 
于 2013-07-15T07:33:01.063 に答える
0

シンプルで醜いですが、機能します:

select str_to_date(concat('Jul 15, ', year(now()), ' 12:12:51'), '%b %e, %Y %T');
于 2013-07-15T07:33:28.690 に答える