首页/数据/数据库速查/日期时间函数:NOW / CURDATE / DATE_FORMAT / DATE_ADD
本包目录(495 条)
MySQL 基础与连接36 条
SQL 语法52 条
用户与权限21 条备份与恢复56 条主从复制与高可用53 条性能与调优57 条Redis 命令96 条Redis 运维与场景124 条

日期时间函数:NOW / CURDATE / DATE_FORMAT / DATE_ADD

取当前时间、格式化、日期加减与差值计算;日期函数用在索引列上会阻断索引,过滤要改写为范围条件。

数据库速查数据更新于 2026-10-12
用途时间处理
常用NOW() CURDATE() DATE_FORMAT() DATE_ADD() DATEDIFF() UNIX_TIMESTAMP()
类型返回 DATETIME / DATE / 数字

常用示例

常用示例
SELECT NOW(), CURDATE(), UNIX_TIMESTAMP();
SELECT DATE_FORMAT(created_at, '%Y-%m-%d %H:%i') AS t FROM orders LIMIT 1;
SELECT DATE_ADD(NOW(), INTERVAL 1 DAY) AS tomorrow;
SELECT DATEDIFF('2026-10-12', '2026-10-01') AS days;
SELECT created_at FROM orders WHERE created_at >= CURDATE() - INTERVAL 7 DAY;
按日期过滤不要写成 WHERE DATE(created_at)='2026-10-12',应写 created_at >= '2026-10-12' AND created_at < '2026-10-13' 才能用上索引。

易错点

  • NOW() 在同一语句中多次调用返回值一致(语句级时间戳),不要指望跨语句稳定
  • STR_TO_DATE 与 DATE_FORMAT 格式串不匹配会返回 NULL 而不是报错,排查静默失败要靠它

数据来源与参考

  • MySQL 8.0 Reference Manual: Date and Time Functions

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌