我正在尝试修复SQL表中列的订单问题。该列包含日期,但类型为varchar
,它们采用以下格式:mm/dd/yy
。我没有这样做,我背后的人做了离开。
如何将所有条目更改为yyyy/mm/dd
格式?一旦我将它们放入这种格式,我将创建一个date
类型的新列,我将转换所有值并将它们放在那里。我的问题是,我用哪个命令来更改这些日期?他们都是在2000年代,所以我可以在所有年份加上“20”。
答案 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')