从无效的日期格式更改mysql日期

从无效的日期格式更改mysql日期,mysql,datetime,Mysql,Datetime,我在excel中的日期数据为dd-mm-yy H:I:s格式,我错误地将其导入mysql,默认格式为%Y-%m-%d%H:%I:%s,所以我现在所有的日期都错了,像31-01-13 00:00:00变成2031-01-13 00:00:00现在我无法从excel再次导入它,所以我需要一个mysql查询来更改列中的日期 谢谢 Farness将日期中的子字符串串联起来应该适用于所有2000年。在1900年代,你需要一个if 首先用选择键确认日期: SELECT CONCAT( '20', su

我在excel中的日期数据为
dd-mm-yy H:I:s
格式,我错误地将其导入mysql,默认格式为
%Y-%m-%d%H:%I:%s
,所以我现在所有的日期都错了,像
31-01-13 00:00:00
变成
2031-01-13 00:00:00
现在我无法从excel再次导入它,所以我需要一个mysql查询来更改列中的日期

谢谢
Farness

将日期中的子字符串串联起来应该适用于所有2000年。在1900年代,你需要一个if

首先用选择键确认日期:

SELECT CONCAT(
 '20', 
 substr(date, 9, 2), 
 '-',
 substr(date, 6, 2),
 '-',
 substr(date, 3, 2),
 ' ',
 TIME(date)
)
FROM table
然后可以就地更新列:

UPDATE table SET date=CONCAT(
 '20', 
 substr(date, 9, 2), 
 '-',
 substr(date, 6, 2),
 '-',
 substr(date, 3, 2),
 ' ',
 TIME(date)
)

最好使用最有可能的子字符串类型函数。所有年份都是20**?对不起,是的,所有年份都是20**。。。最小日期为2001 mm dd,最大日期为2031 mm dd(在mysql中,这是错误的)查询CONCAT(天(日期),“-”,月(日期),“-”,年(日期),“00:00:00”)显示正确的日期(我希望)是否可以。。。如何更新数据由于格式无效,正常日期函数无法工作。请将SELECT转换为
更新表SET date=CONCAT…
只需确保首先正确输出值即可。