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

时间:2012-06-25 19:12:17

标签: 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转换为日期列时

SELECT
    CAST(date_column AS DATE)
    FROM
    table_name 

我不知道为什么它为我提供了日期值的所有空值

2 个答案:

答案 0 :(得分:2)

我会使用正则表达式检查格式,然后使用STR_TO_DATE中的相应说明符来获取标准格式。也许有人可以帮助正则表达式?

的伪代码:

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

说明符:http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html#function_date-format

答案 1 :(得分:0)

CAST()函数的语法是:

CAST(character_string AS character_data_type CHARACTER SET charset_name)

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