0
select * ,str_to_date(date,'%Y-%m-%d')
from numberofmortageloans;
Screenshot of the code not working STR_TO_DATE我的查詢MySQL工作臺不工作
我敢肯定,我失去了一些東西,但讓我知道
select * ,str_to_date(date,'%Y-%m-%d')
from numberofmortageloans;
Screenshot of the code not working STR_TO_DATE我的查詢MySQL工作臺不工作
我敢肯定,我失去了一些東西,但讓我知道
你的日期值是無效的,像「2005-03-00 」。
如果STR_TO_DATE()無法將日期計算爲合法日期,則返回NULL。
mysql> select str_to_date('2005-03-00', '%Y-%m-%d');
+---------------------------------------+
| str_to_date('2005-03-00', '%Y-%m-%d') |
+---------------------------------------+
| NULL |
+---------------------------------------+
如果您嘗試使用真實日期,STR_TO_DATE()可以正常工作。
mysql> select str_to_date('2005-03-01', '%Y-%m-%d');
+---------------------------------------+
| str_to_date('2005-03-01', '%Y-%m-%d') |
+---------------------------------------+
| 2005-03-01 |
+---------------------------------------+
因此,垃圾進入,垃圾出來。
手冊(https://dev.mysql.com/doc/refman/5.7/en/date-and-time-functions.html#function_str-to-date)部分說:
如果啓用了NO_ZERO_DATE或NO_ZERO_IN_DATE SQL模式,零日期或日期的一部分是不允許的。在這種情況下,STR_TO_DATE()返回NULL,並生成一個警告:
mysql> set sql_mode='';
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql> select str_to_date('2005-03-00', '%Y-%m-%d');
+---------------------------------------+
| str_to_date('2005-03-00', '%Y-%m-%d') |
+---------------------------------------+
| 2005-03-00 |
+---------------------------------------+
所以,你可以改變你的SQL_MODE。但我會建議你修改你的數據。