2015-07-10 111 views
-1

我想弄清楚如何根据当前日期选择结果。该脚本将每天运行,但我不确定如何自动执行此操作。根据当前日期查询结果

SELECT * FROM Orders WHERE OrderDate='2008-11-11' 

什么我想现在

SELECT * FROM Orders WHERE OrderDate=NOW() - INTERVAL 1 DAY 
+1

哪个数据库是这样吗? – sstan

+0

对不起,我把它添加到帖子中。 MySQL – user2168066

+0

不,不要那样做。改为添加标签。 –

回答

1
SELECT * 
FROM Orders 
WHERE OrderDate >= DATE(NOW()) 
AND OrderDate < DATE(NOW()) + INTERVAL 1 DAY 

编辑

我总是倾向于当我想到我核对到列写查询上述风格也有一个时间组件。

如果您OrderDate列没有时间组件,那么作为Lennart指出的那样,你可以简单地做:

SELECT * 
FROM Orders 
WHERE OrderDate = DATE(NOW()) 

编辑2:米哈伊对你的问题的评论也与此相关。您可以简单地使用CURDATE()而不是DATE(NOW())

+0

为什么'OrderDate = DATE(NOW())'? – Lennart

+0

DATE(NOW())可以做到这一点,以及斯坦的。我错过了额外的括号 – user2168066

+0

@Lennart:呃,我不知道'OrderDate'没有时间部分。所以我保险起来,以防万一。 – sstan

0

你可以做

SELECT * FROM Orders WHERE (OrderDate > DATE_SUB(NOW(),INTERVAL 1 DAY))