如何动态拉取 MYSQL 日期查询?
How to dynamically pull MYSQL date queries?
我正在尝试 select 来自两个时期(过去 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
但运气不好..
您可以像这样使用 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`
注意:- 如果您将关键字作为列名,则应反引号。
我正在尝试 select 来自两个时期(过去 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
但运气不好..
您可以像这样使用 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`
注意:- 如果您将关键字作为列名,则应反引号。