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

时间:2014-01-17 15:56:41

标签: mysql sql database algorithm

我正在尝试修复SQL表中列的订单问题。该列包含日期,但类型为varchar,它们采用以下格式:mm/dd/yy。我没有这样做,我背后的人做了离开。

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

3 个答案:

答案 0 :(得分:3)

使用STR_TO_DATE

这样做
  • 添加date列(例如,名为newdate
  • 执行此操作:

    UPDATE table SET newdate = STR_TO_DATE(olddate, '%m/%d/%y');

  • 测试

  • 删除旧列,并可选择重命名新列以适应。

请务必使用%y而非%Y:较低版本的版本适用于2位数年份。

答案 1 :(得分:1)

你可以用字符串操作来完成:

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

答案 2 :(得分:0)

使用STR_TO_DATE

STR_TO_DATE(MyDateCol, '%m/%d/%y')