DATE_SUB 函数详解在 SQL 中,DATE_SUB 是一个非常实用的函数,用于从给定的日期或时间中减去指定的时间间隔。它通常用于处理日期的运算,尤其是在数据查询中需要基于某个时间点减去一定的天数、月数或其他时间单位时,DATE_SUB 是不可或缺的工具。
DATE_SUB(date, INTERVAL expr unit)php34 Bytes© 菜鸟-创作你的创作date:要减去时间间隔的原始日期或时间,通常是一个 DATE、DATETIME 或 TIMESTAMP 类型的数据。expr:要从 date 中减去的时间间隔数值,通常是一个整数(如 5、10、20 等)。unit:时间单位,指定 expr 所表示的时间间隔单位。常用的单位包括:SECOND、MINUTE、HOUR、DAY、MONTH、YEAR 等。返回一个新的日期/时间值,表示从原始 date 减去 expr 个单位后得到的结果。
SECOND:秒MINUTE:分钟HOUR:小时DAY:天WEEK:周MONTH:月QUARTER:季度YEAR:年SELECT DATE_SUB(CURRENT_DATE, INTERVAL 10 DAY); 结果:当前日期减去 10 天后的日期。SELECT DATE_SUB('2025-07-30', INTERVAL 3 MONTH); 结果:2025-04-30。SELECT DATE_SUB(NOW(), INTERVAL 5 HOUR); 结果:当前时间减去 5 小时。SELECT DATE_SUB(NOW(), INTERVAL 30 MINUTE); 结果:当前时间减去 30 分钟。SELECT DATE_SUB('2025-07-30 14:30:00', INTERVAL 100 SECOND); 结果:2025-07-30 14:28:20。SELECT DATE_SUB(CURRENT_DATE, INTERVAL 1 YEAR); 结果:当前日期减去 1 年。SELECT DATE_SUB('2025-07-30', INTERVAL 2 QUARTER); 结果:2025-01-30。假设你有一个用户表 users,其中有一个 created_at 字段记录了每个用户的注册时间。现在你想查询过去 3 个月内注册的所有用户:
SELECT * FROM usersWHERE created_at >= DATE_SUB(CURRENT_DATE, INTERVAL 3 MONTH);php81 Bytes© 菜鸟-创作你的创作这条查询会返回所有 created_at 字段值在当前日期减去 3 个月后的日期或之后的记录。
expr 为负数,实际上是执行加法运算,效果等同于 DATE_ADD()。例如:SELECT DATE_SUB('2025-07-30', INTERVAL -3 MONTH); 结果:2025-10-30(等同于加上 3 个月)。DATE_SUB() 支持多种单位,包括 SECOND、MINUTE、HOUR、DAY、MONTH、YEAR 等,选择合适的单位能够精准控制日期运算。DATE_SUB() 可以灵活地帮助我们减去时间间隔,查询过去一周、一个月、三个月或一年的数据。DATE_SUB()能高效完成这些任务。DATE_SUB() 是一个非常实用的 SQL 函数,能帮助我们轻松进行日期减法操作。无论是减去天数、小时、月数,还是年、季度等,都可以通过这个函数简洁地实现。在数据查询、分析以及报表生成中,DATE_SUB() 都能有效地处理时间和日期间的计算,提升了数据库操作的灵活性和效率。https://www.52runoob.com/archives/4840
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。