select eventdatetime, eventid, sCode, sNarrative
FROM [Blue Prism].dbo.BPAAuditEvents;
eventdatetime类型为日期时间。
我需要创建一个查询以返回这些列,其中eventdatetime =最近24小时。
我该怎么做?
我尝试了很多查询,但是没有任何运气。
1)WHERE DATE(eventdatetime) = DATE(NOW())
这返回了语法错误
SQL错误[195] [S00010]:'DATE'不是公认的内置函数名称。
2)where convert(varchar(10), eventdatetime, 102)
= convert(varchar(10), getdate(), 102)
这没有返回任何数据,但也没有错误。
3)WHERE CAST(eventdatetime AS DATE) = CAST(GETDATE() AS DATE)
这也没有返回任何数据,但也没有错误。
select eventdatetime, eventid, sCode, sNarrative
FROM [Blue Prism].dbo.BPAAuditEvents;
我希望输出的记录是从查询运行开始的eventdatetime <= 24小时。
答案 0 :(得分:2)
您想使用dateadd
function将-24小时添加到 now (getdate()
)并将其与您的{{1 }}列,例如
eventdatetime
答案 1 :(得分:0)
在过去的24小时内,我假设您是指介于当前时间和之前的24小时之间的任何日期时间。
public MyEntity usersCheck(@PathVariable String
username){
return userRepo.getByUsername(username);
}
答案 2 :(得分:0)
您可以使用以下几种SQL函数:
NOW() 2019-08-05 15:13:00
SYSDATETIME() 2019-08-05 13:10:02.0474381
SYSDATETIMEOFFSET()2019-08-05 13:10:02.0474381 -07:00
SYSUTCDATETIME() 2019-08-05 20:10:02.0474381
CURRENT_TIMESTAMP 2019-08-05 13:10:02.047 +
GETDATE() 2019-08-05 13:10:02.047
GETUTCDATE() 2019-08-05 20:10:02.047
CURDATE() 2019-08-05
CURTIME() 13:10:02.047
查询就像@Dale Burrell帖子:
select eventdatetime, eventid, sCode, sNarrative
from [Blue Prism].dbo.BPAAuditEvents
where eventdatetime > dateadd(hour, -24, [SQL function]);
或
select eventdatetime, eventid, sCode, sNarrative
from [Blue Prism].dbo.BPAAuditEvents
where eventdatetime >= dateadd([timetype], [timevalue], [SQL function])
and eventdatetime < dateadd([timetype], [timevalue], [SQL function]);
在第一个脚本中,您可以使用>=
,因此最后24小时甚至更长的时间将完全相等,或者仅使用>
仅持续24小时更大的时间。
然后,您只需要根据需要更改功能即可。
第二个是特定时间。与第一个一样,您可以在>=
或>
[时间类型]:分钟,小时,天,月,年
[时间值]:您需要的数字值