如何格式化日期显示_mysql date format用法

6次阅读

MySQL 中无直接格式化命令,但可用 DATE_FORMAT()函数将日期转为指定格式字符串,如 DATE_FORMAT(created_at, ‘%Y-%m-%d’)返回 ’2024-03-15’,返回值为字符串且不可参与日期计算。

如何格式化日期显示_mysql date format 用法

MySQL 中没有直接的“格式化日期显示”命令,但可通过 DATE_FORMAT() 函数将日期时间值按指定格式转为字符串,用于查询结果展示、日志输出或 前端 适配。

DATE_FORMAT() 基本用法

语法:DATE_FORMAT(date, format),其中 date 是合法的日期 / 日期时间表达式(如 NOW()、字段名、’2024-03-15’),format 是由特定占位符组成的格式字符串。

  • 返回值是字符串类型,不是日期类型,不能再直接参与日期计算
  • 若 date 为 NULL 或格式非法,函数返回 NULL
  • 常见格式符示例:%Y(4 位年)、%m(01–12)、%d(01–31)、%H(24 小时制时)、%i(分钟)、%s(秒)

常用日期格式示例

假设表中有字段 created_at DATETIME,值为 ‘2024-03-15 14:28:09’

  • DATE_FORMAT(created_at, ‘%Y-%m-%d’)‘2024-03-15’
  • DATE_FORMAT(created_at, ‘%Y 年 %m 月 %d 日 %H:%i’)‘2024 年 03 月 15 日 14:28’
  • DATE_FORMAT(created_at, ‘%b %e, %Y at %l:%i %p’)‘Mar 15, 2024 at 2:28 PM’(%b 英文缩写,%e 日无前导零,%l 12 小时制,%p AM/PM)

配合查询与条件使用的注意事项

DATE_FORMAT() 仅用于 格式化输出 不能替代日期比较逻辑

  • ✅ 正确:查询 2024 年 3 月的数据 → WHERE created_at >= ‘2024-03-01’ AND created_at
  • ❌ 错误(性能差且无法走索引)→ WHERE DATE_FORMAT(created_at, ‘%Y-%m’) = ‘2024-03’
  • 如需按年月分组统计,可用 GROUP BY YEAR(created_at), MONTH(created_at)GROUP BY DATE_FORMAT(created_at, ‘%Y-%m’)(后者会隐式转字符串,小数据量可接受)

其他相关函数补充

除 DATE_FORMAT 外,MySQL 还提供轻量级格式化方式:

  • YEAR(), MONTH(), DAY(), HOUR(), MINUTE(), SECOND():提取单个部分,返回整数
  • DATE():只取日期部分(去掉时间),返回 DATE 类型
  • TIME():只取时间部分,返回 TIME 类型
  • 需要中文星期或自定义名称?需结合 CASE WHEN 或应用层处理,MySQL 原生不支持 本地化 weekday 名称
星耀云
版权声明:本站原创文章,由 星耀云 2026-01-01发表,共计1150字。
转载说明:转载本网站任何内容,请按照转载方式正确书写本站原文地址。本站提供的一切软件、教程和内容信息仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。
text=ZqhQzanResources