我已经阅读了相关的帖子,但还没有找到答案,所以如果可以的话:
我在表中创建了一个列,如下所示:
[到达] 时间 NOT NULL,
执行这样的查询的最有效方法是什么:
select * from myTable where "Arrival is 1 hours from now" ?
DATEDIFF(小时,GETDATE(),到达)
给我一个非常大的价值,可能是因为到达的 1901,0,0 日期部分。仍然试图理解这一点,所以如果有人能快速回答我,那就太好了。
同样,性能至关重要。
谢谢。
我已经阅读了相关的帖子,但还没有找到答案,所以如果可以的话:
我在表中创建了一个列,如下所示:
[到达] 时间 NOT NULL,
执行这样的查询的最有效方法是什么:
select * from myTable where "Arrival is 1 hours from now" ?
DATEDIFF(小时,GETDATE(),到达)
给我一个非常大的价值,可能是因为到达的 1901,0,0 日期部分。仍然试图理解这一点,所以如果有人能快速回答我,那就太好了。
同样,性能至关重要。
谢谢。
我可能会做类似...
select >>select list<<
from table
where datediff(minute, getdate(), [Arrival]) < 60
或者,使用你的时间
select >>select list<<
from table
where datediff(hour, getdate(), [Arrival]) < 1
编辑:另外,如果性能很关键,那么我还建议验证输入以不允许古代日期。如果您有不依赖于年份甚至月份的重复计划(本质上,您只是在寻找小时和分钟),那么 DatePart 的一些用法将是合适的。
select ____
from [table]
where (((datepart(hour, getdate()) = datepart(hour, [Arrival])) AND (datepart(minute, [Arrival]) - datepart(minute, getdate()) < 60)