如何确定一天中的时间是否介于一定的时间范围内

时间:2015-02-17 09:37:36

标签: sql sql-server

我已经实现了日历类型的应用程序,其中我的数据库中存在一些预定义的时间范围。

我的预定义时间表看起来像这样:

Id    int Unchecked
StartTime varchar(50) Unchecked
EndTime   varchar(50) Unchecked

价值观:

  

Id StartTime EndTime

     

1 00:00 10:29

     

2 10:30 12:59

     

3 13:00 15:59

     

4 16:00 23:59

如何确定使用sql在当前时间范围内

提前致谢

3 个答案:

答案 0 :(得分:1)

您应该使用date and time data type而不是varchar,因为SQL可以理解这些类型的值。 varchar只是一个字符串,SQL不知道如何比较它们。使用时间数据类型,您可以使用BETWEEN作为您的条件,例如:

(…) CURRENT_TIMESTAMP BETWEEN StartTime AND EndTime (…) 

答案 1 :(得分:1)

DECLARE @t varchar(10)='00:10'
select id 
FROM tbl
where  convert(binary,@t) BETWEEN convert(binary,StartTime) 
       AND 
       convert(binary,EndTime)

答案 2 :(得分:1)

DECLARE @t char(5)='23:10'
SELECT *
FROM @yourtable
WHERE @t BETWEEN StartTime AND EndTime