我想获取过去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
答案 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;