select * ,str_to_date(date,'%Y-%m-%d')
from numberofmortageloans;
Screenshot of the code not working
我确定我错过了一些东西,但让我知道
答案 0 :(得分:0)
您的日期值无效,例如'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。但我建议您修改数据。