【问题标题】:Get items from next week从下周获得物品
【发布时间】:2020-08-28 22:32:39
【问题描述】:
我开始做如下查询:
SELECT *
FROM mytable
WHERE (weekofyear(now())+1) <= date_inserted < weekofyear(now()+2)
这样做的问题是,前几年的项目也会出现在这里。执行此查询的最佳方法是什么 - 我希望我仍然可以在 date_inserted 字段的查询中使用索引,这就是我在这里问这个的原因
【问题讨论】:
标签:
mysql
sql
date
query-optimization
where-clause
【解决方案1】:
我会这样说:
where
date_inserted >= current_date + interval 7 - weekday(current_date) day
and date_inserted < current_date + interval 14 - weekday(current_date) day
表达式current_date + interval 7 - weekday(current_date) day 为您提供下周的第一天。这在假设您的周从星期一开始的假设下有效。
您可以看到 date_inserted 列上没有应用日期函数,这意味着 MySQL 很乐意使用该列上的索引进行过滤(如果有的话)。