MySQL->;许多日期格式为varchar to date格式

MySQL->;许多日期格式为varchar to date格式,mysql,date-format,string-to-datetime,Mysql,Date Format,String To Datetime,我需要更改包含许多日期格式(现在是varchar)的列,如 09-10-09 19/01/2009 2009年1月19日等 输入日期格式(年、月、日)的列。我尝试了这个查询,但带来了错误 SELECT CASE WHEN data_rep LIKE "%/%/%" THEN str_to_date( data_rep, '%Y/%m/%d' ) WHEN data_rep LIKE "%.%.%" THEN str_to_date( data_rep, '%Y.%m.%d'

我需要更改包含许多日期格式(现在是varchar)的列,如

  • 09-10-09
  • 19/01/2009
  • 2009年1月19日等
输入日期格式(年、月、日)的列。我尝试了这个查询,但带来了错误

SELECT CASE 
  WHEN data_rep LIKE "%/%/%"
  THEN str_to_date( data_rep, '%Y/%m/%d' )
  WHEN data_rep LIKE "%.%.%"
  THEN str_to_date( data_rep, '%Y.%m.%d' )
  WHEN data_rep LIKE "%-%-%"
  THEN str_to_date(data_rep, '%Y-%m-%d')
  ELSE CAST(data_rep AS DATE)
END AS data_good,
FROM ....
错误:

SQL错误(1064):您的SQL语法中有错误。请检查 手册对于要使用near'(data_rep,'%Y/%m/%d')的正确语法 当数据表示为“%-%-%”时


谢谢

SQL错误(1064):您的SQL语法中有错误。请检查手册。。。。对于正确的语法,当数据表示如“%-%-%”时,请尝试使用
而不是文本周围的
”。删除逗号
后的
作为数据结束,