怎么做:"今天和今天之间7"?

bah*_*100 4 mysql sql

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

为了找到我今天的结果,它可行,我这样做:

SELECT * FROM `account` where DATE(created_at) = DATE(NOW())
Run Code Online (Sandbox Code Playgroud)

但我不知道如何做到最后7天的帐户.

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

SELECT * FROM `account` where DATE(created_at) BETWEEN DATE(NOW()) AND DATE(NOW()-7)
Run Code Online (Sandbox Code Playgroud)

你有个主意吗?

Ann*_*nne 23

尝试:

BETWEEN (NOW() - INTERVAL 7 DAY) AND NOW()
Run Code Online (Sandbox Code Playgroud)

  • 也+1。另外,随着行数的增长,这个不会有巨大的性能损失(与接受的答案相比,该答案在“where”中使用的列上使用函数)... (2认同)

Gry*_*ius 21

在mysql中:

SELECT * FROM `account` 
WHERE DATE(created_at) > (NOW() - INTERVAL 7 DAY)
Run Code Online (Sandbox Code Playgroud)

  • -1这是_not_"在今天和7天之前".这是"7天前",其中可能包括未来的日期. (2认同)
  • 如果你在一个列中有将来的日期应该包含创建某个东西的日期,那么不同的东西无论如何都是非常错误的.但你是对的,最好是安全而不是抱歉. (2认同)