如何在不修改表结构的前提下将mm/dd/yyyy格式文本转为日期类型
STR_TO_DATE 函数本身支持自定义格式匹配,不需要修改表结构,只要指定和你存储格式对应的格式参数即可实现转换。
基础用法
直接在SELECT查询中按如下写法调用即可:
SELECT STR_TO_DATE(`date`, '%m/%d/%Y') AS standard_date FROM your_table_name;
参数说明:
- 第一个参数是你要转换的文本日期字段,注意
date是MySQL保留关键字,用反引号包裹避免语法错误 - 第二个参数是你现有文本的格式匹配规则:
%m匹配两位月份(取值01~12)%d匹配两位日期(取值01~31)%Y匹配四位年份
转换得到的standard_date是标准DATE类型,可直接用于日期比较、运算等后续操作。
异常兼容写法
如果你的表中存在不符合mm/dd/yyyy格式的异常值,可以用IFNULL做兼容,避免查询报错中断:
SELECT IFNULL(STR_TO_DATE(`date`, '%m/%d/%Y'), NULL) AS standard_date FROM your_table_name;
遇到无效日期值时会返回NULL,不会影响整批查询的执行。
内容的提问来源于stack exchange,提问作者adrenaline245
相关产品推荐
相关产品推荐

