日期时间函数 === 日期时间函数用于获取当前时间、提取日期中的某一部分、格式化显示时间等。在日志、订单、报表、统计分析场景中非常常见。 ### 获取当前日期时间的函数 常见函数包括: - `NOW()`:返回当前日期和时间 - `CURDATE()`:返回当前日期 - `CURTIME()`:返回当前时间 示例: ```sql SELECT NOW(); SELECT CURDATE(); SELECT CURTIME(); ``` 这些函数常用于: - 记录创建时间 - 生成时间范围查询 - 显示当前系统日期时间 ### 获取月份的函数 `MONTH()` 用于提取日期中的月份。 ```sql SELECT MONTH('2026-03-20'); SELECT MONTH(NOW()); ``` 它常用于: - 月度统计 - 月份筛选 - 报表分组 例如: ```sql SELECT * FROM orders WHERE MONTH(created_at) = 3; ``` ### 获取星期的函数 可以使用 `DAYNAME()` 获取星期名称,也可以使用 `WEEKDAY()` 获取星期序号。 ```sql SELECT DAYNAME('2026-03-20'); SELECT WEEKDAY('2026-03-20'); ``` 这类函数常用于: - 周报表 - 排班系统 - 按星期维度做统计 ### 获取时间的函数 如果想从日期时间中提取小时、分钟、秒,可以使用: - `HOUR()` - `MINUTE()` - `SECOND()` 示例: ```sql 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()` 用于按指定格式输出日期时间。 示例: ```sql SELECT DATE_FORMAT(NOW(), '%Y-%m-%d'); SELECT DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i:%s'); SELECT DATE_FORMAT(NOW(), '%Y年%m月%d日'); ``` 它适合: - 页面展示 - 报表输出 - 自定义日期格式转换 在分组统计中也很常用: ```sql 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()`。