[英]Select data from last week mysql query
我有一個帶有日期字段的表,我想選擇從上周(星期六)到周日(不是過去7天)的所有條目。
表值
Date ID Value
8/3/2015 8:03 PM a 10
8/4/2015 8:03 PM b 20
8/5/2015 8:03 PM c 30
8/6/2015 8:03 PM d 40
8/7/2015 8:03 PM e 50
8/9/2015 8:03 PM f 60
8/10/2015 8:03 PM g 70
我只想從最后選擇a,b,c,d,e的ID。 我該如何在其中編寫mysql查詢?
這有點棘手。 一種方法是嘗試使用諸如week()
,但是這種方法在年初會出現問題。
另一種方法是獲取星期日的午夜日期並將其用於計算。 我認為此表達式可以做到:
date_sub(curdate(), interval (weekday(curdate()) + 1) % 7) - 1 day)
然后可以將其插入where
子句:
select v.*
from values v
where v.date < date_sub(curdate(), interval (weekday(curdate()) + 1) % 7) - 1 day) and
v.date >= date_sub(curdate(), interval (weekday(curdate()) + 1) % 7) - 8 day);
注意:此公式可以使用date
上的索引。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.