我对此查询存在问题,无法确定问题的来源。
我正在尝试运行:update earnings_history set
Date_formatted = STR_TO_DATE(
temp_date , '%m/%d/%Y');
将我的字符串转换为日期,但我收到此错误。
Error Code: 1292. Incorrect datetime value: '2015-02-29' for column 'Date_formatted' at row 5610
然而这个查询:select temp_date from earnings_history where
temp_date REGEXP '[-]';
找不到任何行。
我使用在完全不同的表中格式化的%Y-%m-%d,但它们似乎在混合?
答案 0 :(得分:1)
我认为您会在temp_date
表格中将02/29/2015
字段设置为earnings_history
。
您的STR_TO_DATE()
来电正在指定'%m/%d/%Y'
的格式。它正在查找具有该格式的日期并将其解析为标准SQL日期格式'%Y-%m-%d'
。然后,它会尝试将该日期插入您键入的字段。该类型不会采用无效日期,因此当它看到2015-02-29
的无效日期时,它会抛出错误。您的表格中没有%Y-%m-%d
格式的日期;您的预期格式为%m/%d/%Y
。