如果我写:
SELECT *
FROM table
WHERE date >= NOW - INTERVAL '5 MINTUE';
我将获得过去5分钟内的所有数据,但第一分钟和最后一分钟不会是完整的分钟,他们可能会是部分分钟。意思是" NOW()"是4:30:24,然后现在() - INTERVAL' 5分钟'我会从4:25:24到4:30:24。分钟25是部分的,仅包含36秒,与30分钟相同,仅包含24秒。
我怎样才能获得最后5分钟?我考虑过去掉第一分钟和最后一分钟或最小/最大,但当我考虑分钟[58,59,60,01,02]时,这个想法变成了挑战。在这种情况下,min / max并不能说明在60分钟后循环回到0。
任何想法都会有所帮助。
答案 0 :(得分:2)
您可以使用date_trunc()
:
SELECT *
FROM table
WHERE date >= date_trunc('minute', now()) - interval '5 minute' and
date < date_trunc('minute', now())
答案 1 :(得分:0)
尝试这样的事情
SELECT *
FROM table
WHERE date >= DateADD(mi, -5, Current_TimeStamp)