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

标签 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 

我不知道为什么它给我的日期值全部为空

最佳答案

我将使用正则表达式来检查格式,然后在 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

关于mysql 将各种日期格式转换为统一的日期格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11195773/

相关文章:

java - 为什么这段java代码无法将图像保存到mysql数据库中?

asp.net - 规范化数据库所需的建议

mysql - SQL 查询不返回唯一结果。我需要使用哪种类型的联接?

mysql - 首先加载什么?主键还是外键?

mysql - SQL 连接多个匹配项

mysql - 为什么 MySQL Docker 容器提示在使用 Docker 17.03 secret 时必须定义 MYSQL_ROOT_PASSWORD env?

php - 在mysql中查找一个整数的排名

sql - 将带有时区的时间戳转换为星期几

mysql - 从同一个表中进行双重选择

mysql - 如何从MySQL中的数据库中找出表和字段