2

我遇到了一个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 

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

4

2 回答 2

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

于 2012-06-25T19:24:08.193 回答
0

CAST()函数的语法是:

CAST(character_string AS character_data_type CHARACTER SET charset_name)

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

于 2012-06-25T19:20:30.100 回答