我想过滤我有记录的时间 我写了这样的查询查询将在12:00 Pm和05:00 Pm之间获取时间
Select cs_ClinicName , FromTime ,ToTime from #temp
WHERE (1=1) and
( FromTime between CONVERT(Time,'12:00') and CONVERT(Time,'17:00')
or
ToTime between CONVERT(Time,'12:00') and CONVERT(Time,'17:00') )
但它只过滤了这些记录 Micolaj11111 09:00:00.0000000 13:00:00.0000000
我期待的是它必须给所有在其间工作的诊所 在12:00至05:00之间 根据记录所有临床工作,在那个时间段12:00 Pm和05:00 Pm之间
Clinic NAME FromTime ToTime
Boyka 09:00:00.0000000 18:00:00.0000000
Clinic Name 10:00:00.0000000 18:00:00.0000000
sleek clini 10:00:00.0000000 18:00:00.0000000
Life Clinic 10:00:00.0000000 18:00:00.0000000
SAiClini 09:00:00.0000000 18:00:00.0000000
jh 10:00:00.0000000 19:00:00.0000000
Micolaj11111 09:00:00.0000000 13:00:00.0000000
Dental Clinic 10:00:00.0000000 19:00:00.0000000
Eye clinic 09:00:00.0000000 18:00:00.0000000
ryan 01:00:00.0000000 06:00:00.0000000
答案 0 :(得分:1)
你可以用这个
Select cs_ClinicName , FromTime ,ToTime from #temp
where ((datepart(hh, FromTime) <= 12) and (datepart(hh, ToTime ) >= 17))
答案 1 :(得分:0)
您的查询正在请求在给定范围之间具有开始或结束时间的所有记录。但是,您应该查看是否比提供的范围更早或更晚完成。如果您需要确定在整个时间范围内保持开放状态的任何诊所,请尝试以下类似的事项:
Select * FROM #Temp
WHERE FromTime <= CONVERT(Time, '12:00') AND ToTime >= CONVERT(Time, '17:00')
如果您需要找到在给定时间范围内开放的诊所,请尝试
Select * FROM #Temp
WHERE CONVERT(Time,'12:00') <= ToTime