我在dataset中有这个列:
order_date
'2009-01-02'
'2009-01-05'
'2009-01-05'
'2009-01-05'
'2009-01-06'
'2009-01-10'
'2009-01-10'
'2009-01-11'
日期是字符串格式的,因此我尝试使用以下方法将它们转换为MySQL工作台中的日期格式:
UPDATE orders SET order_date = STR_TO_DATE(order_date, '%d-%m-%Y');
但这会不断地发出错误消息:
Error Code: 1411. Incorrect datetime value: '2010-10-13' for function str_to_date
我认为格式错误,所以我将代码修改为'%Y-%m-%d‘,但这似乎没有做任何事情,只返回:
0 row(s) affected Rows matched: 5506 Changed: 0 Warnings: 0
而且这些更改似乎没有生效,因为查询数据类型会显示Type为“text.‘”。
我知道以前有人问过这个问题,我尝试过使用像this one这样的解决方案,但它似乎不起作用。这看起来可能有一些问题的条目,其中的日期是'2010-10-13‘,但我似乎找不出解决办法。
请让我知道我哪里出了问题或者我错过了什么。提前谢谢。
发布于 2022-08-25 04:33:03
STR_TO_DATE()
函数的第二个参数必须包含用于解析的模式。您可以指定'%d-%m-%Y'
-因此数据应该包含这种格式的值,例如,'13-10-2010'
,这样解析才能成功。您的数据包含'2010-10-13'
,模式告诉您第一个数字组是天数,服务器提取这个组是2010年,并报告这是不正确的日数,因此,整个值是“不正确的日期时间值”。https://stackoverflow.com/questions/73481721
复制相似问题