我已经实现了日历类型的应用程序,其中我的数据库中存在一些预定义的时间范围。
我的预定义时间表看起来像这样:
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在当前时间范围内
提前致谢
答案 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