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

SQL如何根据产品AwardedDate匹配财年表返回对应财年名称

实现方案

完整SQL语句

你需要的日期范围匹配可以直接用BETWEEN实现,如果你要生成无重复的下拉菜单财年选项,完整语句如下:

SELECT DISTINCT fy.Name AS FiscalYearName
FROM Products
LEFT JOIN FiscalYear fy 
ON Products.AwardedDate BETWEEN fy.StartDate AND fy.EndDate
-- 不需要过滤无匹配财年的话可以删掉下一行
WHERE fy.Name IS NOT NULL
-- 按时间排序让下拉选项符合使用习惯,要升序就把DESC改成ASC
ORDER BY fy.StartDate DESC

逻辑说明

  • 核心匹配规则:BETWEEN会判断AwardedDate是否大于等于StartDate且小于等于EndDate,正好符合财年的范围匹配要求。你举的例子2016-11-27大于FY17的起始日期2016-10-01、小于结束日期2017-09-30,会正确返回FY17。
  • 加DISTINCT是避免多个产品落在同一个财年时返回重复的财年名称,适配下拉菜单的生成场景。

特殊场景适配

如果你的数据里AwardedDate带时分秒,可能出现2017-09-30 14:00:00匹配失效的问题,可以把关联条件改成如下写法规避:

ON Products.AwardedDate >= fy.StartDate 
AND Products.AwardedDate < DATE_ADD(fy.EndDate, INTERVAL 1 DAY)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 03:09:03