我有一个表名transactions
,其中数据行以日期
喜欢
`trans_id` `amount` `tdate`
我想过滤那些数据,比如过去30天,过去31天60天,过去61-90天计算总量还
我的疑问是
最近30天
SELECT SUM(amount) AS amt FROM transactions GROUP BY DATE(tdate) ORDER BY DATE(tdate) DESC LIMIT 30
工作正常并显示金额的SUM(最后30天)
但过去31-60天没有工作
SELECT SUM(amount) AS amt FROM transactions GROUP BY DATE(tdate) ORDER BY DATE(tdate) DESC LIMIT 60,31
如何解决?我确实只想包括31到60天的金额
答案 0 :(得分:0)
使用以下内容:(它在今天和过去30天之间返回数据)
SELECT DATE_FORMAT(DateCol, '%m/%d/%Y')
FROM Table
WHERE DateCol BETWEEN CURDATE() - INTERVAL
30 DAY AND CURDATE()
或者更确切地说,这将解决问题:
DateCol BETWEEN (NOW() - INTERVAL 60 DAY)
AND (NOW() - INTERVAL 30 DAY)
CURDATE()仅适用于日期部分。如果你有DateTime列,那么NOW()就可以了。