如何在mysql中格式化日期_mysql日期格式化函数

来源:这里教程网 时间:2026-02-28 20:31:08 作者:

MySQL 中格式化日期主要靠 DATE_FORMAT() 函数,它能把日期时间值按指定模式转成可读的字符串。关键不是记全所有格式符,而是掌握常用组合和注意事项。

DATE_FORMAT() 基本用法

语法:DATE_FORMAT(date, format),第一个参数是日期类型(如 DATE、DATETIME、TIMESTAMP),第二个是格式化模板字符串。

模板中用 % 开头的占位符表示具体部分,比如 %Y 是 4 位年份,%y 是 2 位年份 常见格式符:%m(01–12 月),%c(1–12 月,不补零),%d(01–31 日),%e(1–31 日,不补零) 星期和月份名可用 %W(Monday)、%w(0=Sunday)、%M(January)、%b(Jan)

常用格式化示例

假设字段 created_at 值为 2024-07-15 14:23:56

DATE_FORMAT(created_at, '%Y-%m-%d')2024-07-15 DATE_FORMAT(created_at, '%Y年%m月%d日 %H:%i')2024年07月15日 14:23 DATE_FORMAT(created_at, '%b %e, %Y')Jul 15, 2024 DATE_FORMAT(created_at, '%W, %M %e, %Y')Monday, July 15, 2024

注意时区与数据类型

DATE_FORMAT() 不改变原始值,只影响显示结果;它对 NULL 返回 NULL。

如果字段是字符串(如 '20240715'),需先用 STR_TO_DATE() 转为日期再格式化,例如:
DATE_FORMAT(STR_TO_DATE('20240715', '%Y%m%d'), '%Y/%m/%d')
查询时若涉及时区,确保系统或会话时区设置正确(SELECT @@time_zone 可查看),否则 NOW() 或 CURDATE() 可能与预期不符 对 DATETIME 字段格式化时,%H(24 小时制)比 %h(12 小时制)更常用,避免混淆

其他相关函数补充

除 DATE_FORMAT 外,几个辅助函数也常一起使用:

YEAR()/MONTH()/DAY():直接提取数字部分,适合做条件筛选或分组 DATE():只取日期部分(去掉时间),等价于 DATE_FORMAT(dt, '%Y-%m-%d') TIME():只取时间部分 FROM_UNIXTIME():把 Unix 时间戳转为可读日期,支持格式化,如 FROM_UNIXTIME(1721024636, '%Y-%m-%d')

相关推荐