我正在尝试从两个时段(过去30天和过去30天)中选择数据 所以两个30天的时间。
我过去30天的时间过去了:
SELECT ProductID, ProductIDintarget,date_format(Date,'%m/%d/%Y'),SUM(Rev)
FROM datatable
WHERE Date BETWEEN CURDATE()-1 - INTERVAL 31 DAY AND CURDATE()
GROUP BY ProductIDintarget
这样做很好,但现在我很难努力获得前30天的时间。
我尝试将WHERE语句更改为:
WHERE Date BETWEEN CURDATE()-32 - INTERVAL 31 DAY AND CURDATE()-32
但没有运气..
答案 0 :(得分:1)
您可以像这样使用DATE_ADD()
或DATE_SUB()
:
SELECT
ProductID,
ProductIDintarget,
DATE_FORMAT(Date,'%m/%d/%Y'),
SUM(Rev)
FROM datatable
WHERE `Date` < (DATE_ADD(CURDATE(), INTERVAL 1 MONTH))
AND `Date` > (DATE_SUB(CURDATE(), INTERVAL 2 MONTH))
GROUP BY
ProductID,
ProductIDintarget,
`Date`
注意: - 如果您将关键字作为列名,则应该反击。