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

SQL按发布日期分时间段查询仅返回部分结果及NULL值问题排查

问题成因及解决方案

问题成因

  • 核心错误是BETWEEN语法的使用不符合规则:BETWEEN a AND b要求a ≤ b才会正常返回判断结果,你写的区间中,更早的时间(比如current_date - 3个月)放在了AND右侧,更晚的时间(current_date - 2个月)放在了AND左侧,所有中间区间的判断条件永远为假,不会触发对应分类。
  • 区间衔接存在空隙:第一个条件覆盖了「1个月内」的时间后,1个月前到2个月前的时间段没有被任何中间条件覆盖,也会返回NULL。

修复方案

调整区间判断逻辑,利用CASE按顺序匹配的特性,不需要写双端范围即可避免语法错误和区间空隙,同时建议别名不要和原字段名release_date重名,避免后续引用出现歧义,修改后的查询语句如下:

SELECT
    CASE
        WHEN release_date >= CURRENT_DATE - INTERVAL '1 month' THEN 'Within 1 month'
        WHEN release_date >= CURRENT_DATE - INTERVAL '3 months' THEN '2-3 months'
        WHEN release_date >= CURRENT_DATE - INTERVAL '5 months' THEN '4-5 months'
        WHEN release_date >= CURRENT_DATE - INTERVAL '7 months' THEN '6-7 months'
        WHEN release_date >= CURRENT_DATE - INTERVAL '9 months' THEN '8-9 months'
        WHEN release_date >= CURRENT_DATE - INTERVAL '12 months' THEN '9-12 months'
        ELSE '> 12 month'
    END AS release_date_period,
    country,
    -- 其余业务字段
    ...

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 13:45:03