mysql日期减一天,常用方法

首页 2025-09-19 13:14:33


在 MySQL 中,可以使用多种方法对日期进行减一天操作,常用的有以下几种:

1. 使用 DATE_SUB () 函数

这是 MySQL 专门用于日期减法的函数,语法:

sql
DATE_SUB(日期, INTERVAL 1 DAY)
 

示例:

sql
-- 对指定日期减一天
SELECT DATE_SUB('2023-10-05', INTERVAL 1 DAY); -- 结果:2023-10-04

-- 对当前日期减一天
SELECT DATE_SUB(CURDATE(), INTERVAL 1 DAY); -- 结果:当前日期的前一天
 

2. 使用 SUBDATE () 函数

SUBDATE () 是 DATE_SUB () 的别名,用法相同:

sql
-- 对当前时间减一天
SELECT SUBDATE(NOW(), INTERVAL 1 DAY); -- 结果:当前时间的前一天(包含时间)
 

3. 直接进行算术运算

可以对日期类型直接减 1(单位为天):

sql
-- 日期减1天
SELECT '2023-12-01' - INTERVAL 1 DAY; -- 结果:2023-11-30

-- 当前日期减1天
SELECT CURDATE() - 1; -- 结果:当前日期的前一天
 

实际应用示例

查询昨天创建的记录:

sql
SELECT * FROM orders 
WHERE create_time >= DATE_SUB(CURDATE(), INTERVAL 1 DAY)
AND create_time < CURDATE();
 

这些方法适用于 DATEDATETIME 和 TIMESTAMP 类型的字段,根据实际场景选择即可。
MySQL连接就这么简单!本地远程、编程语言连接方法一网打尽
还在为MySQL日期计算头疼?这份加一天操作指南能解决90%问题
MySQL日志到底在哪里?Linux/Windows/macOS全平台查找方法在此
MySQL数据库管理工具全景评测:从Workbench到DBeaver的技术选型指南
MySQL密码忘了怎么办?这份重置指南能救急,Windows/Linux/Mac都适用
你的MySQL为什么经常卡死?可能是锁表在作怪!快速排查方法在此
MySQL单表卡爆怎么办?从策略到实战,一文掌握「分表」救命技巧
清空MySQL数据表千万别用错!DELETE和TRUNCATE这个区别可能导致重大事故
你的MySQL中文排序一团糟?记住这几点,轻松实现准确拼音排序!
别再混淆Hive和MySQL了!读懂它们的天壤之别,才算摸到大数据的门道