簡體   English   中英

從上周的mysql查詢中選擇數據

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM