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

如何在SQL中对分存的年月列进行日期范围查询?

解决方案:获取2021年3月至今的MyData数据

方法一:通过日期转换实现筛选

你之前的错误是嵌套了多余的子查询,直接在WHERE子句中用DATEFROMPARTS生成日期后做比较即可:

SELECT * 
FROM MyData
WHERE DATEFROMPARTS([Year], [Month], 01) >= '2021-03-01'

这里用>=是为了包含2021年3月的数据,若需严格排除该月份,可改为>。

方法二:无需日期转换的高效筛选

不用转换为日期类型,直接通过年份和月份的数值组合做比较,性能更优(避免日期函数的计算开销,适合大数据量场景):

SELECT * 
FROM MyData
WHERE ([Year] * 100 + [Month]) >= 202103

原理是把年份和月份拼接成整数(比如2021年3月对应202103),直接和目标值做数值对比,逻辑清晰且计算高效。

两种方法对比

  • 日期转换方法可读性更强,符合直观的日期逻辑,适合小数据量或需要后续处理日期的场景。
  • 数值组合方法性能更好,无日期函数转换开销,若表中对Year和Month有复合索引,查询效率会显著提升。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 20:20:12