您好,我正在尝试从数据库中提取最后5分钟的数据。我在下面编写的查询未提取我需要的数据。
Select e.*
from Event e
where e.whenoccurred >= datefunc('10/01/2019 00:00 -05:00', '-5 minutes')
and dateadd(minutes,-5,getdate())
我收到错误
Query has failed: no such column: minutes
任何有帮助的想法吗?
使用
SELECT * FROM event
where whenoccured >= date_sub(now(), interval 5 minute);
SELECT * FROM event
WHERE whenoccured >= NOW() - INTERVAL 5 MINUTE;
SELECT * FROM event
WHERE DATE_ADD(whenoccured , INTERVAL 5 MINUTE) >= NOW();
SysDate返回为数据库所在的操作系统设置的当前日期和时间。返回值的数据类型为DATE,并且返回的格式取决于NLS_DATE_FORMAT初始化参数的值。该函数不需要参数。在分布式SQL语句中,此函数返回为本地数据库的操作系统设置的日期和时间。
此查询得到sysdate减去五分钟。
select *
from event
where whenoccured >= sysdate - (5/1440)
您可以使用
select *
from event
where whenoccured >= systimestamp - interval '5' minute
[systimestamp
代表返回当前系统日期,包括小数秒和时区。
Update(如果是MySQL DB,而不是最初带有标签的Oracle,则使用date_sub()
函数:
date_sub()
假设
select * from event where whenoccured >= date_sub(now(), interval 5 minute);
列的类型为whenoccured
或datetime
timestamp
在SQL Server上,dateadd