MySQL添加WHERE条件后分组查询无返回值问题求助
问题排查结论
核心错误原因
- 最直接的问题是WHERE条件中的日期值没有加单引号:你写的
2021 - 10 - 15在SQL中会被识别为算术表达式,计算结果为2021 - 10 - 15 = 1996,相当于你在筛选日期为1996年的记录,自然没有匹配结果。 - 额外潜在问题:你的查询逻辑存在分组字段不匹配问题,SELECT返回的是
CAST(Başlangıç AS date)的分组结果,但GROUP BY用的是tarih字段,如果这两个字段值不一致也会导致结果不符合预期。
修复后的SQL写法
SELECT CAST(durus_tablo.Başlangıç AS date) AS expr1, CAST(SUM(durus_tablo.`Toplam Süre`) AS time) AS expr2 FROM durus_tablo WHERE CAST(durus_tablo.Başlangıç AS date) BETWEEN '2021-10-15' AND '2021-10-17' GROUP BY CAST(durus_tablo.Başlangıç AS date)
验证说明
你可以先运行下面的测试语句确认日期计算的问题:
SELECT 2021-10-15;
运行后你会看到返回结果是1996,而非你预期的日期值,这就是问题的根源。
内容的提问来源于stack exchange,提问作者Onur PERİNOĞLU
相关产品推荐
相关产品推荐

