信息发布→ 登录 注册 退出

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

发布时间:2026-01-02

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

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

DATE_FORMAT() 基本用法

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

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

常用日期格式示例

假设表中有字段 created_at DATETIME,值为 '2025-03-15 14:28:09'

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

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

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

  • ✅ 正确:查询 2025 年 3 月的数据 → WHERE created_at >= '2025-03-01' AND created_at
  • ❌ 错误(性能差且无法走索引)→ WHERE DATE_FORMAT(created_at, '%Y-%m') = '2025-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 名称
标签:# 值为  # 可接受  # 查询结果  # 能再  # 如需  # 可通过  # 不支持  # 自定义  # 中有  # 是由  # mysql  # 字符串类型  # 字符串  # format  # date  # NULL  # 格式化输出  # 本地化  # 前端  
在线客服
服务热线

服务热线

4008888355

微信咨询
二维码
返回顶部
×二维码

截屏,微信识别二维码

打开微信

微信号已复制,请打开微信添加咨询详情!