是否可以计算某段时间内一天中特定时间的数据?
我有大量数据,想要计算特定时间段内一天中特定时间之间收集的“金额”。
例如:下面,我想将 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/