使用SQL获取过去7天的最高值

时间:2014-05-19 19:33:42

标签: sql

我想获取过去7天的最高值(来自名为value的列)。我试过这个sql:

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

3 个答案:

答案 0 :(得分:6)

您正在将unix时间戳与日期进行比较。怎么样?

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

答案 1 :(得分:2)

我猜这是MySQL,在这种情况下你可以这样做:

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

答案 2 :(得分: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;