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

如何修正存储过程中自动获取对应年度9月后新增记录的逻辑错误?

修正方案

核心逻辑是根据当前月份动态确定起始日期:

  • 若当前月份 ≥9,起始日期为当年9月1日
  • 若当前月份 <9,起始日期为上一年9月1日

MySQL/MariaDB 实现

可以通过CASE语句结合日期函数生成正确起始日期:

creation_date >= CASE
    WHEN MONTH(CURRENT_DATE()) >= 9 THEN STR_TO_DATE(CONCAT(YEAR(CURRENT_DATE()), '-09-01'), '%Y-%m-%d')
    ELSE STR_TO_DATE(CONCAT(YEAR(CURRENT_DATE()) - 1, '-09-01'), '%Y-%m-%d')
END

也可以用更简洁的日期运算写法:

creation_date >= DATE_FORMAT(CURRENT_DATE() - INTERVAL (MONTH(CURRENT_DATE()) < 9) YEAR, '%Y-09-01')

SQL Server 实现

使用DATEFROMPARTS构造日期,逻辑一致:

creation_date >= CASE
    WHEN MONTH(GETDATE()) >= 9 THEN DATEFROMPARTS(YEAR(GETDATE()), 9, 1)
    ELSE DATEFROMPARTS(YEAR(GETDATE()) - 1, 9, 1)
END

逻辑验证

  • 当当前日期为2024年1月时,起始日期自动设为2023-09-01,符合需求
  • 当当前日期进入2024年9月后,起始日期切换为2024-09-01,满足自动更新的要求

内容的提问来源于stack exchange,提问作者S. Sriram

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 02:55:15