怎么做:“今天和今天之间7”?

时间:2011-06-08 09:27:46

标签: mysql sql

我需要找到当天创建的帐户,过去7天内。

要查找今天的搜索结果,它可以正常运行,而且我这样做:

SELECT * FROM `account` where DATE(created_at) = DATE(NOW())

但我不知道该如何做到最后7天的帐号。

我试过这样的事,但没有成功:

SELECT * FROM `account` where DATE(created_at) BETWEEN DATE(NOW()) AND DATE(NOW()-7)

有你的想法吗?

4 个答案:

答案 0 :(得分:22)

尝试:

BETWEEN (NOW() - INTERVAL 7 DAY) AND NOW()

答案 1 :(得分:19)

在mysql中:

SELECT * FROM `account` 
WHERE DATE(created_at) > (NOW() - INTERVAL 7 DAY)

答案 2 :(得分:3)

如果created_at有索引并且您不想阻止优化程序使用它,我建议使用以下模式(假设created_at包含日期和时间):

WHERE created_at >= CURRENT_DATE - INTERVAL 7 DAY
  AND created_at <  CURRENT_DATE + INTERVAL 1 DAY

这个范围从一周前的一天到今天(包括),总共8天。

答案 3 :(得分:0)

还看看MySQL函数ADDDATE(),DATE_ADD(),DATE_SUB()

e.g。

ADDDATE(DATE(NOW()), -7)