我正在尝试使用 str_to_date 将包含格式为 YYYY-MM-DD 的日期的 varchar 列复制到日期列。
我的查询是:
UPDATE `subscribers` SET `srtdt` = STR_TO_DATE(`StartDate`, '%Y%m%d%');
我收到错误 1411:不正确的日期时间值:'2001-09-16'... 这似乎发生在第一行。
我对此进行了很多搜索,但找不到发生这种情况的原因-所有其他答案都指向字符串格式错误等,而我的问题似乎并非如此。
我正在尝试使用 str_to_date 将包含格式为 YYYY-MM-DD 的日期的 varchar 列复制到日期列。
我的查询是:
UPDATE `subscribers` SET `srtdt` = STR_TO_DATE(`StartDate`, '%Y%m%d%');
我收到错误 1411:不正确的日期时间值:'2001-09-16'... 这似乎发生在第一行。
我对此进行了很多搜索,但找不到发生这种情况的原因-所有其他答案都指向字符串格式错误等,而我的问题似乎并非如此。
试试看:
您需要注意的是,在 STR_TO_DATE() 中,格式定义参数不是您期望的输出 - 输出是 mysql 日期 - 而是您期望的 INPUT。即在操作的示例中,查看输出是明智的
如果字符串格式为 yyyy-mm-dd,则使用“%Y-%m-%d”。
但是,如果输出的格式显示为(澳大利亚标准)“2020 年 6 月 1 日”,那么您将需要“%d %M %Y”。