Sql server 如何在SQL Server查询中查找最近的时间?

Sql server 如何在SQL Server查询中查找最近的时间?,sql-server,Sql Server,如果一辆公共汽车在6:40到达,那么最近的时间应该是6:30 如果巴士在9:35到达,最近的时间应该是10:00,我需要一个T-SQL查询解决方案 提前感谢,, Anil您可以执行以下操作: id Bus arrival time 1 6:30 2 7:00 3 9:00 4 10:00 5 15:00 6 16:00 您如何存储公交车到达时间数据?您使用的日期类型是什么?此查询

如果一辆公共汽车在6:40到达,那么最近的时间应该是6:30

如果巴士在9:35到达,最近的时间应该是10:00,我需要一个T-SQL查询解决方案

提前感谢,,
Anil

您可以执行以下操作:

id     Bus arrival time
1          6:30
2          7:00
3          9:00
4          10:00
5          15:00
6          16:00

您如何存储
公交车到达时间
数据?您使用的日期类型是什么?此查询对您有帮助吗?这里有一个提示:将
@TIME
设置为
8:45
并进行测试
DECLARE @TIME TIME = '6:45'


DECLARE @TEMP TABLE(ID int,start time);

insert into @temp values(1, '6:30')
insert into @temp values(1, '7:00')
insert into @temp values(1, '9:00')
insert into @temp values(1, '10:00')
insert into @temp values(1, '15:00')
insert into @temp values(1, '6:30')
insert into @temp values(1, '16:00')


SELECT top(1)start ,ABS(DATEDIFF(MINUTE , @TIME ,START )) as diff
FROM @TEMP
order by diff
declare @checkTime time = '6:40'

select top 1 * from schedule
order by ABS(DATEDIFF(Second, @checkTime, busArrivalTime))