我有一个名为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
工作正常并显示金额总和(最近30天)
但最近31-60天没有工作
SELECT SUM(amount) AS amt FROM transactions GROUP BY DATE(tdate) ORDER BY DATE(tdate) DESC LIMIT 60,31
如何解决?我只想包含31到60天的金额
使用以下语句:(它返回从今天到过去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()就可以了。