我需要找到当天创建的帐户,过去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)
有你的想法吗?
答案 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)