mysql将各种日期格式转换为统一格式

mysql将各种日期格式转换为统一格式,mysql,sql,Mysql,Sql,我遇到过一个mysql数据库,它的日期以各种随机格式输入到varchar列中,例如下面的 01/01/1977 05-05-1980 58 ( age to be converted to date ) 1.2.1990 02/02/87 01-Mar-73 如何将其转换为一种统一格式-dd/mm/yyyy 另外,当我尝试使用此数据将varchar转换为date列时 SELECT CAST(date_column AS DATE) FROM table_name

我遇到过一个mysql数据库,它的日期以各种随机格式输入到varchar列中,例如下面的

01/01/1977
05-05-1980
58   ( age to be converted to date )
1.2.1990
02/02/87
01-Mar-73
如何将其转换为一种统一格式-dd/mm/yyyy

另外,当我尝试使用此数据将varchar转换为date列时

SELECT
    CAST(date_column AS DATE)
    FROM
    table_name 

我不知道为什么它会给我日期值的所有空值,
CAST()函数的语法是:

CAST(character_string AS character_data_type CHARACTER SET charset_name)

您是否以正确的方式查询了它?

我将使用regex检查格式,然后使用STR_to_DATE中的适当说明符来获得标准格式。也许有人能帮上regex

伪代码:

SELECT 
     CASE WHEN date REGEXP '[m-d-y]'
          THEN STR_TO_DATE(date, %)
说明符:

已更新:。如果存在任何歧义,即某些日期存储为m/d/y,而某些日期存储为d/m/y,则显然无法工作。