Mysql 如何更正SQL表中的日期值?

Mysql 如何更正SQL表中的日期值?,mysql,sql,database,algorithm,Mysql,Sql,Database,Algorithm,我正在尝试修复SQL表中某列的顺序问题。该列有日期,但类型为varchar,它们的格式为:mm/dd/yy。我没有这样做,我身后的人这样做了,然后离开了 如何将所有条目更改为格式yyyy/mm/dd?一旦我将它们放入这种格式,我将创建一个类型为date的新列,我将转换所有值并将它们放入其中。我的问题是,我应该使用哪个命令来更改这些日期?它们都在2000年代,所以我可以在所有年份部分中添加“20”。您可以通过字符串操作来实现: update t set col = concat('20',

我正在尝试修复SQL表中某列的顺序问题。该列有日期,但类型为
varchar
,它们的格式为:
mm/dd/yy
。我没有这样做,我身后的人这样做了,然后离开了


如何将所有条目更改为格式
yyyy/mm/dd
?一旦我将它们放入这种格式,我将创建一个类型为
date
的新列,我将转换所有值并将它们放入其中。我的问题是,我应该使用哪个命令来更改这些日期?它们都在2000年代,所以我可以在所有年份部分中添加“20”。

您可以通过字符串操作来实现:

update t
    set col = concat('20', right(col, 2), '/', left(col, 5))
    where col like '%/%/%'

您可以通过字符串操作来完成此操作:

update t
    set col = concat('20', right(col, 2), '/', left(col, 5))
    where col like '%/%/%'
这样做,使用:

  • 添加一个
    date
    列(例如称为
    newdate
  • 执行以下命令:

    updatetable SET newdate=STR_TO_DATE(旧日期,%m/%d/%y')

  • 测试一下

  • 删除旧列,并根据需要重命名新列
确保您使用的是
%y
而不是
%y
:小写版本使用两位数年份。

这样做,使用:

  • 添加一个
    date
    列(例如称为
    newdate
  • 执行以下命令:

    updatetable SET newdate=STR_TO_DATE(旧日期,%m/%d/%y')

  • 测试一下

  • 删除旧列,并根据需要重命名新列
确保使用
%y
而不是
%y
:小写版本使用两位数年份。

使用:

使用: