2014-05-19 62 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;