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

SQLite查询未返回预期结果:SUM函数返回NULL问题排查

问题排查与解决

核心原因

SQLite中的DATE类型本质是文本类型,字符串比较按字符逐位匹配。你的ngay字段存储的是带时分秒的完整时间字符串(如2023/11/20 11:43:01),而查询条件里的截止值是'2023/11/20'——字符串比较时,'2023/11/20'会被判定为小于'2023/11/20 11:43:01',因此两条示例数据都不满足ngay <= '2023/11/20'的条件。WHERE子句过滤后无匹配行,SUM()函数对空结果集返回NULL。

解决方法

可以通过以下几种方式修正查询:

方法1:扩展截止时间到当日最后一刻

把截止条件改为包含当天的23:59:59,确保覆盖所有当天的时间数据:

SELECT SUM(tongtien) AS doanhthu 
FROM Giohang 
WHERE ngay >= '2023/11/01' AND ngay <= '2023/11/20 23:59:59';

方法2:使用SQLite日期函数提取纯日期部分

用DATE()函数忽略时间部分,只比较日期:

SELECT SUM(tongtien) AS doanhthu 
FROM Giohang 
WHERE DATE(ngay) BETWEEN '2023/11/01' AND '2023/11/20';

(也可拆分写成DATE(ngay) >= '2023/11/01' AND DATE(ngay) <= '2023/11/20',效果一致)

方法3:规范日期存储格式(可选)

如果后续数据插入可控制,建议统一将ngay存储为不带时间的纯日期字符串(如2023/11/20),或使用SQLite支持的标准日期时间格式(如YYYY-MM-DD HH:MM:SS),让后续日期比较更直观不易出错。


内容的提问来源于stack exchange,提问作者ɭê ɦùռɠ

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 14:45:06