MySQL日期格式转换的实用指南
在MySQL中,转换日期格式主要使用DATE_FORMAT() 和 STR_TO_DATE() 函数,它们能灵活处理日期与字符串之间的相互转换,满足数据展示、存储和查询的需求。

使用DATE_FORMAT()将日期转换为指定格式
此函数用于将日期、时间或日期时间值格式化为字符串,语法为:
DATE_FORMAT(date, format)
date 是待转换的日期字段或值,format 指定输出格式,常用格式符包括:
%Y:四位年份(如2023)%m:两位月份(01-12)%d:两位日期(01-31)%H:24小时制小时(00-23)%i:分钟(00-59)%s:秒(00-59)
示例:将 order_date 字段转换为“年-月-日”格式:
SELECT DATE_FORMAT(order_date, '%Y-%m-%d') AS formatted_date FROM orders;
若需更人性化的显示,如“2023年10月15日”,可调整格式:
SELECT DATE_FORMAT(order_date, '%Y年%m月%d日') AS formatted_date FROM orders;
使用STR_TO_DATE()将字符串转换为日期
当字符串需要转为MySQL可识别的日期类型时,可使用此函数,语法为:
STR_TO_DATE(string, format)
它按照 format 模式解析字符串,返回日期时间值,将字符串“15-10-2023”转换为日期:
SELECT STR_TO_DATE('15-10-2023', '%d-%m-%Y') AS converted_date;
注意:若字符串与格式不匹配,将返回 NULL,因此需确保数据一致性。
实际应用场景与技巧
- 数据清洗:导入文本数据时,常用
STR_TO_DATE()统一日期格式。 - 报表生成:利用
DATE_FORMAT()定制化显示日期,提升可读性。 - 条件查询:结合函数进行日期范围筛选,例如查询2023年10月的数据:
SELECT * FROM logs WHERE DATE_FORMAT(log_time, '%Y-%m') = '2023-10';
- 性能优化:对日期字段进行格式转换可能影响索引使用,建议在查询条件中避免对字段直接使用函数,可改用范围查询。
其他相关函数
- UNIX_TIMESTAMP():将日期转为时间戳。
- FROM_UNIXTIME():将时间戳转为日期格式。
- DATE_ADD() / DATE_SUB():进行日期加减运算。
掌握这些函数后,可轻松应对MySQL中的日期处理需求,提升数据操作效率与准确性,实践中,建议根据业务场景选择合适的函数,并注意保持数据格式的规范性。
未经允许不得转载! 作者:HTML前端知识网,转载或复制请以超链接形式并注明出处HTML前端知识网。
原文地址:https://www.html4.cn/11049.html发布于:2026-08-15





