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

SQL查询需求:筛选指定交付/退货日期及退货为空的账户记录

正确SQL语句修正

先明确你现有代码和需求的核心矛盾:需求要求交付日期晚于日期x,但你写的delivered <= '$end'是筛选交付日期早于等于$end的记录,完全和需求相反,这直接导致符合退货日期条件的记录被过滤。

结合你给出的示例参数($start = '2024-03-01'、$end = '2024-03-31'),假设需求里的“日期x”对应$start,修正后的SQL如下:

SELECT * 
FROM charges 
WHERE ship_to = '$shipper' 
    AND delivered > '$start'  -- 改为大于指定日期,匹配"交付日期晚于日期x"的需求
    AND ((returned BETWEEN '$start' AND '$end') OR (returned IS NULL));

如果你的“日期x”是独立于$start/$end的变量(比如单独的$x),则调整为:

SELECT * 
FROM charges 
WHERE ship_to = '$shipper' 
    AND delivered > '$x' 
    AND ((returned BETWEEN '$y' AND '$z') OR (returned IS NULL));

错误原因说明

原代码的delivered <= '$end'会排除所有交付日期晚于$end的记录,而你期望的那两条退货日期在3月内的记录,大概率是因为交付日期晚于2024-03-31,被这个错误条件过滤掉了。修正交付日期的比较运算符后,就能同时返回退货日期在指定区间和退货日期为NULL的记录。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 17:52:05