2014-05-19 135 views
1

我想在過去7天內獲取最高值(從名爲value的列)。我已經試過這個SQL:使用SQL獲取最近7天的最高值

SELECT MAX(value) as value_of_week 
FROM events 
WHERE event_date > UNIX_TIMESTAMP() -(7 * 86400); 

但它給我86.1比今天的日期早7天。鑑於下面的行,我應該得到55.2與日期2014-05-16 07:07:00。

id value event_date 
1 28.  2014-04-18 08:23:00 
2 23.6 2014-04-22 06:43:00 
3 86.1 2014-04-29 05:32:00 
4 43.3 2014-05-03 08:12:00 
5 55.2 2014-05-16 07:07:00 
6 25.6 2014-05-19 06:11:00 
+1

您正在使用哪個數據庫管理系統?看起來像MySQL? –

回答

6

您正在比較迄今爲止的unix時間戳。這個怎麼樣?

SELECT MAX(value) as value_of_week 
FROM events 
WHERE event_date > date_add(now(), interval -7 day); 
2

即時猜測這是MySQL和在這種情況下,你可以這樣做:

select max(value) as value_of_week from events where event_date between date_sub(now(),INTERVAL 1 WEEK) and now(); 
0

可以使用

SELECT MAX(value) as value_of_week FROM events where event_date>= curdate() - INTERVAL DAYOFWEEK(curdate())+6 DAY AND event_date< curdate() - INTERVAL DAYOFWEEK(curdate())-1 DAY;