You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在MySQL中不使用adddate函数给日期添加天数?

MySQL日期添加指定天数(禁用ADDDATE函数)的替代方案

以下是几种可行的实现方式:

  • 使用DATE_ADD函数
    DATE_ADD是ADDDATE的标准同义词,功能完全一致,只是写法不同:

    SELECT DATE_ADD('2024-01-01', INTERVAL 100 DAY);
    

    执行后会返回2024-04-10,和ADDDATE('2024-01-01',100)结果完全相同。

  • 通过UNIX时间戳转换计算
    先将日期转为UNIX时间戳(秒级),加上指定天数对应的秒数,再转换回日期格式:

    SELECT FROM_UNIXTIME(UNIX_TIMESTAMP('2024-01-01') + 100 * 24 * 3600);
    

    注意:这种方法受UNIX时间戳范围限制,仅适用于1970-01-01到2038-01-19之间的日期,超出该范围会出现错误。

  • 日期数值化计算(不推荐,复杂度高)
    把日期转为YYYYMMDD格式的数值,手动计算天数进位后再转回日期,这种方式需要处理月份天数、闰年等逻辑,代码繁琐且易出错,示例如下(仅作演示):

    SELECT STR_TO_DATE(
        CAST(
            FLOOR((CAST(DATE_FORMAT('2024-01-01', '%Y%m%d') AS UNSIGNED) + 100) / 10000) * 10000 +
            FLOOR(((CAST(DATE_FORMAT('2024-01-01', '%Y%m%d') AS UNSIGNED) + 100) % 10000) / 100) * 100 +
            ((CAST(DATE_FORMAT('2024-01-01', '%Y%m%d') AS UNSIGNED) + 100) % 100)
        AS CHAR),
        '%Y%m%d'
    );
    

    实际场景中不建议使用这种方法,维护成本太高。

内容的提问来源于stack exchange,提问作者Victor Esteban

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 18:42:37