2016-07-20 82 views
0

例如,我想在60天前获取今天确切日期的数据。如何获取今天-30/-60天的日期?

我已经尝试了下面的查询,但它从60天前直到今天选择所有记录。

(bill_date > DATE_SUB(CURDATE() , INTERVAL 60 DAY) 

我想要的是60天前的记录。谁能帮我?

+0

我很困惑。你是指60天前还是之前的记录? – KaeL

回答

2

您必须使用=而不是>

SELECT * FROM table 
WHERE bill_date = DATE_SUB(NOW(), INTERVAL 60 DAY); 

今天+ 60天(仅此一天)使用DATE_ADD()

SELECT * FROM tableName WHERE bill_date = DATE_ADD(NOW(), INTERVAL 60 DAY); 

今天 - 使用DATE_SUB()超过60天(仅此一天):

SELECT * FROM tableName WHERE bill_date = DATE_SUB(NOW(), INTERVAL 60 DAY); 

从现在到 -/+ 60天之间的所有记录:

SELECT * FROM tableName 
WHERE bill_date BETWEEN DATE_SUB(NOW(), INTERVAL 60 DAY) AND NOW(); 

SELECT * FROM tableName 
WHERE bill_date BETWEEN DATE_ADD(NOW(), INTERVAL 60 DAY) AND NOW(); 
+0

根据我的理解,在这个答案中首先给出的查询将做的伎俩,并得到当天的数据,因为你需要 – Saurabh

+0

是的,完全... –

0

根据我对你的问题的理解。试试这个查询。并请更清楚你的问题。

SELECT * FROM table 
WHERE bill_date BETWEEN DATE_SUB(NOW(), INTERVAL 60 DAY) AND NOW();