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

如何调整SQL查询仅返回当前财年记录且适配每年财年规则

问题根源

你当前的SQL逻辑固定取「上一年8月1日至当年7月31日」的区间,没有根据当前日期动态判断所属财年:

  • 若当前日期在当年1-7月,所属财年为「上年8月1日-当年7月31日」,原有逻辑生效
  • 若当前日期在当年8-12月,所属财年应为「当年8月1日-下年7月31日」,原有逻辑仍取上一财年区间,就会出现查询到超出目标范围旧数据的问题

适配自动财年的修正代码

SELECT 
    FORMAT(DATEADD("m", 5, [OrderDate]), "\Qq") AS Quarter, *
FROM 
    tblOrders
WHERE 
    [OrderDate] BETWEEN 
        DateSerial(Year(Date()) - IIF(Month(Date()) < 8, 1, 0), 8, 1)
        AND 
        DateSerial(Year(Date()) + IIF(Month(Date()) >= 8, 1, 0), 8, 0)
ORDER BY 
    tblOrders.OrderDate DESC;

逻辑说明

  • 通过IIF(Month(Date()) < 8, 1, 0)判断当前月份是否在财年起始节点前,动态调整起止年份计算,无需每年手动修改,可永久适配8月1日至次年7月31日的财年规则
  • DateSerial(年份, 8, 0)会自动返回对应年份7月的最后一天,无需额外处理大小月、闰年的日期边界问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.08 21:54:01