如何构造查询结果,例如日期范围?

时间:2018-07-27 22:58:46

标签: mysql sql mariadb

我有一个带有创建时间戳的邀请表。

我想按每周队列查询,这意味着需要给定一周中的所有记录。例子

  • 上周
  • 2周前
  • 3周前

这是我到目前为止所拥有的:

上周

SELECT *
FROM invitations
WHERE created_at >= curdate() - INTERVAL dayofweek(curdate()) + 6 DAY
AND created_at < curdate() - INTERVAL dayofweek(curdate()) - 1 DAY

2周前

SELECT *
FROM invitations
WHERE created_at >= curdate() - INTERVAL dayofweek(curdate()) + 13 DAY
AND created_at < curdate() - INTERVAL dayofweek(curdate()) - 1 DAY

3周前

SELECT *
FROM invitations
WHERE created_at >= curdate() - INTERVAL dayofweek(curdate()) + 18 DAY
AND created_at < curdate() - INTERVAL dayofweek(curdate()) - 1 DAY

我认为这不能正常工作,因为它正在查询所有记录,而不仅仅是查询给定一周中的记录。是否有更好或更轻松的方式按每周同类群组进行此类查询?

0 个答案:

没有答案