我遇到过一个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
我不知道为什么它为我提供了日期值的所有空值
答案 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)
您是否以正确的方式查询?