mysql计算特定日期内特定时间段之间的数据

标签 mysql

是否可以计算某段时间内一天中特定时间的数据?

我有大量数据,想要计算特定时间段内一天中特定时间之间收集的“金额”。

例如:下面,我想将 7 月 1 日至 15:00 - 14:59 之间收取的金额合计为“金额 1”,将 15:00 - 20:59 之间收取的金额合计为“金额 2” 7 月 31 日。 '总金额' = '金额1' + '金额2'

sum(if('2012-07-01 00:00:00' 和 '2012-07-31 14:59:00' 之间的日期,(金额),0)) as '金额 1', sum(if(日期在 '2012-07-01 15:00:00' 和 '2012-07-31 20:59:00',(金额),0)) as '金额 2', sum(金额) 作为“总金额”

但是,“总金额”的结果与“金额 1”+“金额 2”不匹配。

最佳答案

您没有对总金额字段设置任何限制(即没有日期或时间限制,因此包含日期/时间范围之外的数据。您可以向 sum(Amount) 添加条件逻辑,就像您为其他字段或添加 WHERE 子句,如下所示:

WHERE DATE(Amount) BETWEEN '2012-07-01' and '2012-07-31'
AND TIME(Amount) BETWEEN '00:00:00' and '20:59:00'

这样可以正确计算您的总金额,并允许您删除时间范围求和逻辑中的日期范围条件。

关于mysql计算特定日期内特定时间段之间的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11849829/

相关文章:

mysql - 表之间的区别和变化是什么?

mysql - 触发更新 - 2 个表

php - 如何更改默认错误消息代码

mysql - 根据匹配值选择 A 列或 B 列

Mysql - 按 SQL 查询排序

php - 有 2-3% 的时间出现错误的字符编码

mysql - 优化复杂的 SQL 查询

php - 交易错误

mysql - 高效连接两个表

php - MYSQL三元数据库选择