如果我想获得一定日期范围内的总消耗量,我该怎么做?
我想我可以这样做:
SELECT id, SUM(consumption)
FROM consumption_info
WHERE date_time BETWEEN 2013-09-15 AND 2013-09-16
GROUP BY id;
但是这会返回:空集,2 个警告(0.00 秒)
---------------------------------------
id | consumption | date_time |
=======================================|
1 | 5 | 2013-09-15 21:35:03 |
2 | 5 | 2013-09-15 24:35:03 |
3 | 7 | 2013-09-16 11:25:23 |
4 | 3 | 2013-09-16 20:15:23 |
----------------------------------------
有什么想法我在这里做错了吗?
提前致谢
您缺少日期字符串周围的引号:WHERE 子句实际上应该写为...
BETWEEN '2013-09-15' AND '2013-09-16'
讽刺的是2013-09-15
is一个有效的 SQL 表达式 - 这意味着2013 minus 09 minus 15
。显然,相应的结果之间没有日期;因此返回一个空集
然而这里可能还有另一个更微妙的错误:你可能应该使用这个子句......
BETWEEN '2013-09-15 00:00:00' AND '2013-09-16 23:59:59'
... 反而。如果没有明确设置时间,它将在两个日期上设置为“00:00:00”(如DATETIME
此处比较值)。
虽然对于开始日期显然是可以的,但对于结束日期则不然 - 当然,除非排除当天任何时间的所有记录,但午夜实际上是期望的结果。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)