当前位置: 首页 > news >正文

mysql DATE_SUB函数 对日期或时间进行减法运算

MySQL 的 DATE_SUB() 函数用于对日期或时间进行减法运算,返回一个经过计算的新日期 / 时间值。它通常用于从指定日期中减去一定的时间间隔(如天数、小时、月份等)。

语法

sql

DATE_SUB(date, INTERVAL expr unit)
  • date:要进行运算的基础日期 / 时间,可以是日期字符串、DATE 类型或 DATETIME 类型的值。
  • expr:要减去的数值(可以是正数或负数,若为负数则相当于加法)。
  • unit:时间单位,如 DAYMONTHHOUR 等。

常用时间单位

支持的 unit 参数包括:MICROSECOND(微秒)、SECOND(秒)、MINUTE(分钟)、HOUR(小时)、DAY(天)、WEEK(周)、MONTH(月)、QUARTER(季度)、YEAR(年)等。

示例

假设当前日期为 2023-10-05,以下是常见用法:

  1. 减去天数

    sql

    SELECT DATE_SUB('2023-10-05', INTERVAL 3 DAY);
    -- 结果:2023-10-02(从指定日期减去3天)
    
  2. 减去月份

    sql

    SELECT DATE_SUB('2023-10-05', INTERVAL 1 MONTH);
    -- 结果:2023-09-05(从指定日期减去1个月)
    
  3. 减去小时

    sql

    SELECT DATE_SUB('2023-10-05 12:00:00', INTERVAL 2 HOUR);
    -- 结果:2023-10-05 10:00:00(从指定时间减去2小时)
    
  4. 结合当前时间使用 CURDATE()(当前日期)或 NOW()(当前日期时间)作为基础:

    sql

    SELECT DATE_SUB(CURDATE(), INTERVAL 7 DAY); -- 7天前的日期
    SELECT DATE_SUB(NOW(), INTERVAL 1 YEAR);   -- 1年前的此刻
    
  5. 负数运算(相当于加法)

    sql

    SELECT DATE_SUB('2023-10-05', INTERVAL -5 DAY);
    -- 结果:2023-10-10(相当于加5天)
    

实际应用场景

  • 筛选近 30 天的数据:

    sql

    SELECT * FROM orders 
    WHERE create_time >= DATE_SUB(CURDATE(), INTERVAL 30 DAY);
    
  • 计算过期时间(如 7 天后过期):

    sql

    SELECT DATE_SUB(NOW(), INTERVAL -7 DAY) AS expire_time;
    

注意事项

  • 若减去月份时,原日期的天数超过目标月份的最大天数,结果会自动调整(例如 DATE_SUB('2023-03-31', INTERVAL 1 MONTH) 返回 2023-02-28 或 2023-02-29)。
  • 与 DATE_ADD() 函数功能相反,DATE_ADD() 用于日期加法运算。

通过 DATE_SUB() 可以灵活处理日期时间的偏移计算,是数据分析和时间范围筛选的常用工具。

http://www.dtcms.com/a/478913.html

相关文章:

  • 企业微信网站开发公司网易企业邮箱怎么找回密码
  • 力扣热题100p128最长连续序列
  • 【LeetCode热题100(42/100)】将有序数组转换为二叉搜索树
  • google网站建设网站开发答辩ppt
  • 超越CNN:GCN如何重塑图像处理
  • A100云服务器租赁:边缘计算时代的算力新形态
  • 建设项目环评验收网站做网站都需要年服务费吗
  • js中 btoa 方法 和 atob方法介绍
  • 做网络写手 哪个网站比较好亚马逊deal网站怎么做
  • css布局的几种方式
  • 前端数值运算精度丢失问题及解决方案
  • 免费建站软件有哪些苏州建行网站首页
  • 极海APM32F107V6 移植FreeRTOS+CMSIS-RTOS V2
  • Centos Stream 8 搭建Cas Server
  • 营销型网站建设优化汽车电商网站建设
  • 网站建设中最基本的决策南昌网站建设和推广
  • 网页设计网站如何添加链接家庭网站建设
  • ModuleNotFoundError: No module named ‘conda_token‘
  • 长春哪家做网站做的好网站建设员是做什么的
  • Milvus部署在T4 GPU上,Dify检索性能可以提升多少?
  • 南阳手机网站推广h5网页设计软件
  • 戴森球的物理模拟
  • 基于springboot社区养老服务平台的设计与实现(附源码)
  • 晨光科技 网站建设北京优化网站
  • 简易水位报警器方案开发案例
  • 公司网站建设费用计入什么科目做网站主页
  • 最长子串和分配苹果问题
  • Ubuntu设置共享文件夹
  • 网站开发一个多少钱系统网站推广方案怎么做
  • 制作网站需要懂哪些重生北京上大学开网吧做网站的小说