Skip to content

Latest commit

 

History

History
116 lines (79 loc) · 2.08 KB

File metadata and controls

116 lines (79 loc) · 2.08 KB

日期时间函数

日期时间函数用于获取当前时间、提取日期中的某一部分、格式化显示时间等。在日志、订单、报表、统计分析场景中非常常见。

获取当前日期时间的函数

常见函数包括:

  • NOW():返回当前日期和时间
  • CURDATE():返回当前日期
  • CURTIME():返回当前时间

示例:

SELECT NOW();
SELECT CURDATE();
SELECT CURTIME();

这些函数常用于:

  • 记录创建时间
  • 生成时间范围查询
  • 显示当前系统日期时间

获取月份的函数

MONTH() 用于提取日期中的月份。

SELECT MONTH('2026-03-20');
SELECT MONTH(NOW());

它常用于:

  • 月度统计
  • 月份筛选
  • 报表分组

例如:

SELECT *
FROM orders
WHERE MONTH(created_at) = 3;

获取星期的函数

可以使用 DAYNAME() 获取星期名称,也可以使用 WEEKDAY() 获取星期序号。

SELECT DAYNAME('2026-03-20');
SELECT WEEKDAY('2026-03-20');

这类函数常用于:

  • 周报表
  • 排班系统
  • 按星期维度做统计

获取时间的函数

如果想从日期时间中提取小时、分钟、秒,可以使用:

  • HOUR()
  • MINUTE()
  • SECOND()

示例:

SELECT HOUR('2026-03-20 14:35:40');
SELECT MINUTE('2026-03-20 14:35:40');
SELECT SECOND('2026-03-20 14:35:40');

这种函数常见于:

  • 时段统计
  • 按小时聚合
  • 业务时间分析

格式化日期的函数

DATE_FORMAT() 用于按指定格式输出日期时间。

示例:

SELECT DATE_FORMAT(NOW(), '%Y-%m-%d');
SELECT DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i:%s');
SELECT DATE_FORMAT(NOW(), '%Y年%m月%d日');

它适合:

  • 页面展示
  • 报表输出
  • 自定义日期格式转换

在分组统计中也很常用:

SELECT DATE_FORMAT(created_at, '%Y-%m') AS month_name, COUNT(*)
FROM orders
GROUP BY DATE_FORMAT(created_at, '%Y-%m');

小结

日期时间函数让 MySQL 可以直接完成时间提取、格式化和统计。最常见的高频函数通常是 NOW()CURDATE()MONTH()HOUR()DATE_FORMAT()