【发布时间】:2021-07-09 09:05:46
【问题描述】:
我有一个名为“expdate”的列,类型为“varchar”,其值如下:
2021-02-27
28-02-2023
29/02/2024
.
.
.
现在我想将格式 %d-%m-%Y 等所有日期值更改为 %Y-%m-%d 并保存到新列并使用日期类型:
UPDATE `Users`
SET `fixed_expdate` = STR_TO_DATE(REPLACE(`expdate`,"/",'-'), "%d-%m-%Y")
where `expdate` != '0000-00-00'
但是 sql 命令显示错误如下:
SQL查询: UPDATE `Users` SET `fixed_expdate` = STR_TO_DATE(REPLACE(`expdate`,"/",'-'), "%d-%m-%Y") where `expdate` != '0000-00-00' MySQL 说:文档 #1411 - 不正确的日期时间值:函数 str_to_date 的“2021-02-27”我需要sql命令,你的解决方案是什么?
【问题讨论】:
-
您必须添加功能来检测三种典型格式:
-
欧洲是 'dd[./-]mm[./-]yyyy'。美国是'mm/dd/yyyy'。 ISO 是'yyyy-mm-dd'。只有在其他格式的月份数字无效的情况下,才能将美国与欧洲区分开来。 ISO 格式很简单。一旦您可以从欧洲检测到美国人,您就可以使用不同的 STR_TO_DATE() 调用来创建您的日期
标签: mysql sql phpmyadmin