如何在MySQL中将文本格式的日期数据转换为标准日期格式?
MySQL 8位纯文本日期转标准
YYYY-MM-DD格式方案 场景1:仅查询时转换输出,不修改原数据
- 方案1:转成标准DATE类型(推荐,适配后续所有日期计算、比较操作)
执行语句:SELECT STR_TO_DATE('20210422', '%Y%m%d') AS format_date;
转换后为原生DATE类型,默认输出格式即为2021-04-22。 - 方案2:仅转换为指定格式的字符串
如果不需要使用日期能力,仅做格式展示,可以用字符串处理实现:SELECT CONCAT(LEFT('20210422',4), '-', SUBSTRING('20210422',5,2), '-', RIGHT('20210422',2)) AS format_date;
场景2:修改表内原有存储的日期数据
操作前请先备份表数据,避免误操作导致数据损失
- 先验证转换结果是否符合预期:
SELECT 你的日期字段名, STR_TO_DATE(你的日期字段名, '%Y%m%d') AS 转换后结果 FROM 你的表名 LIMIT 20;
- 确认无误后执行更新:
-- 如果要保留字段为字符串类型,直接更新为带横杠的格式 UPDATE 你的表名 SET 你的日期字段名 = DATE_FORMAT(STR_TO_DATE(你的日期字段名, '%Y%m%d'), '%Y-%m-%d'); -- 更推荐直接修改字段类型为DATE,存储成本更低、后续日期操作效率更高 ALTER TABLE 你的表名 MODIFY COLUMN 你的日期字段名 DATE;
内容的提问来源于stack exchange,提问作者adadadad
相关产品推荐
相关产品推荐

