MySQL 常用日期函数 实战指南

在数据分析和报表开发中,时间维度的处理是绝对绕不开的一环。无论是计算用户的注册时长,还是按周/月生成数据看板,熟练掌握 MySQL 的日期函数都是必修课。

本文将结合实际业务场景,梳理 MySQL 中最核心、最高频的日期函数,并通过通俗易懂的小例子帮你快速掌握。

目录

[一、 获取当前时间:一切的起点](#一、 获取当前时间:一切的起点)

[二、 日期提取与格式化:让数据更直观](#二、 日期提取与格式化:让数据更直观)

[三、 日期加减运算:时间窗口的计算](#三、 日期加减运算:时间窗口的计算)

[四、 日期差值计算:衡量时间跨度](#四、 日期差值计算:衡量时间跨度)

总结


一、 获取当前时间:一切的起点

在记录数据插入时间或计算"距今多久"时,我们需要获取系统的当前时间。

  • NOW():返回当前的日期和时间(YYYY-MM-DD HH:MM:SS)。
    • 示例 :SELECT NOW(); -- 结果:2026-08-31 11:46:57
  • CURDATE():仅返回当前日期(YYYY-MM-DD)。
    • 示例 :SELECT CURDATE(); -- 结果:2026-08-31
  • CURTIME():仅返回当前时间(HH:MM:SS)。
    • 示例 :SELECT CURTIME(); -- 结果:11:46:57
二、 日期提取与格式化:让数据更直观

原始的时间戳往往不符合展示要求,我们需要对其进行"拆解"或"换装"。

  • YEAR() / MONTH() / DAY():分别提取日期中的年、月、日。
    • 示例 :SELECT MONTH('2026-08-31'); -- 结果:8
  • DATE_FORMAT(date, format):将日期按照指定格式输出,是报表开发的"美颜神器"。
    • 场景:将数据库中的标准时间转换为中文习惯的"2026年08月"格式
    • 示例 :SELECT DATE_FORMAT('2026-08-31', '%Y年%m月'); -- 结果:2026年08月
    • 常用格式符 :%Y (四位年), %m (两位月), %d (两位日), %H (24小时制), %i (分钟), %s (秒)。
三、 日期加减运算:时间窗口的计算
  • DATE_ADD(date, INTERVAL expr unit):在指定日期上增加一段时间。
    • 示例 :SELECT DATE_ADD('2026-08-31', INTERVAL 30 DAY); -- 结果:2026-09-30
  • DATE_SUB(date, INTERVAL expr unit):在指定日期上减去一段时间。
    • 示例 :SELECT DATE_SUB('2026-08-31', INTERVAL 3 MONTH); -- 结果:2026-05-31
四、 日期差值计算:衡量时间跨度

计算两个时间点之间的间隔,是业务逻辑中最常见的需求。

  • DATEDIFF(date1, date2):返回两个日期之间相差的天数 (date1 - date2)。
    • 示例 :SELECT DATEDIFF('2026-08-31', '2026-08-01'); -- 结果:30
  • TIMESTAMPDIFF(unit, datetime1, datetime2):比 DATEDIFF 更强大,可以指定返回的单位(如年、月、小时等)。
    • 示例 :SELECT TIMESTAMPDIFF(YEAR, '2000-08-31', '2026-08-31'); -- 结果:26
总结

MySQL 的日期函数虽然繁多,但核心逻辑只有三个:获取当前时间 、提取/格式化时间 、计算时间差/时间偏移。

希望这篇指南能帮你在处理时间数据时更加游刃有余!如果觉得有用,欢迎点赞收藏~

相关推荐
瀚高PG实验室7 小时前
发布端逻辑复制槽消失
数据库·postgresql·瀚高数据库
ss2737 小时前
PostgreSQL慢查询定位与优化
数据库·postgresql
香蕉大香蕉(06敬畏市场)7 小时前
MySQL 单点详解(07)
java·数据库·mysql·ai·博客·八股
smilejingwei8 小时前
TRAE 插件上新 | SQLazy:让 AI 写出可信复杂 SQL
数据库·人工智能·sql
我要见SA姐18 小时前
GitHub Actions 自动化:5 个真实运维提效案例
运维·数据库·机器学习·oracle·回归
IT规划师9 小时前
百亿数据写入 MySQL:空间降维 × IO 降维 × 工程兜底
mysql·sqlsugar·.net10
遇码9 小时前
2026-11-01-daw-retry-banner-body
人工智能·ai·rust·数据分析·大模型·agent
QXWZ_IA10 小时前
边坡监测预算有限时的建设顺序:虚拟基准站与成本账
网络·数据库
databook10 小时前
Pandas 与 Polars:语法、性能和资源占用方面的对比
python·数据分析·pandas