SQL选择上个月的数据

刘易斯·史密斯

我可以使用下面的代码选择过去任意几天的数据,但是如果我只想要上个月的数据(例如60天之前到30天之前),该怎么办。

我以为我可以使用INTERVAL 60 - 30,但是我不确定那是否可以使用...

SELECT
    product,
    COUNT(OrderNumber) AS CountOf
FROM
    orders
WHERE
    STATUS = 'booking' AND
    Date(OrderDate) <= CURDATE() AND 
    Date(OrderDate) > DATE_SUB(CURDATE(),INTERVAL 30 DAY)

GROUP BY
    product
ORDER BY CountOf DESC

有什么想法吗?

戈登·利诺夫(Gordon Linoff)

这太长了,无法发表评论:

Date(OrderDate) < DATE_SUB(CURDATE(), INTERVAL 30 DAY) AND 
Date(OrderDate) >= DATE_SUB(CURDATE(), INTERVAL 60 DAY)

注意:如果OrderDate已经是日期,则不要使用该DATE()功能。它可以防止使用索引。

即使OrderDate具有时间成分,您可能仍然不需要此DATE()功能。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章