SQL服务器中是否有等效的sysdate-1/24?

时间:2014-10-22 14:36:17

标签: sql sql-server

我试过四处寻找,但我找不到一个似乎与我正在使用的代码一起使用的答案。基本上,以下查询搜索当前日期的任何结果。我正试图让它只在最后一小时搜索。

在oracle中我可以使用sysdate-1/24来做到这一点,SQL服务器中有一个简单的等价物吗?请记住,我已经使用强制转换来获取当前的sysdate。

Select  distinct m_record_server
from search_recording_file1
where tr_date_recorded >= cast(convert(varchar(10), getdate(), 110) as datetime)
and m_record_server is not null

1 个答案:

答案 0 :(得分:4)

您可以使用:

getdate() - 1.0/24

SQL Server允许您在datetime上使用此类算法。

更常见的方式是:

dateadd(hour, -1, getdate())

在您的查询中,您根本不需要转换为字符串:

Select distinct m_record_server
from search_recording_file1
where tr_date_recorded >= getdate() - 1.0/24 and m_record_server is not null;

如果你想要一小时前的 date (这似乎是代码的意图,如果不是问题的其余部分):

Select distinct m_record_server
from search_recording_file1
where tr_date_recorded >= cast(getdate() - 1.0/24 as date) and m_record_server is not null;