如何在SQL Server中获取特定时间内可用的员工列表?

时间:2015-11-16 12:19:03

标签: sql-server

我有一张员工表。其中包含(EmpId(int),AvailableFrom(Time),AvailableTo(Time))等列。           我需要在特定时间(8:15:00到9:30:00)获取可用的员工列表。          我写了这样的查询。

Select * from employees emp where
(emp.availablefrom<'09:30:00.0000000' and
emp.availableto>'08:15:00.0000000')

但是在结果列表中,我也从(9:00:00到10:00:00)获得了可用的员工。

提前致谢。

4 个答案:

答案 0 :(得分:0)

SELECT * 
FROM   employees emp 
WHERE 
       emp.availablefrom >= '08:15:00.0000000' 
   AND emp.availablefrom <= '09:30:00.0000000'
   AND emp.availableto   >= '08:15:00.0000000' 
   AND emp.availableto   <= '09:30:00.0000000'  

答案 1 :(得分:0)

只需更改您的比较,例如emp.availablefrom>'08:15:00.0000000'emp.availableto<'09:30:00.0000000'

答案 2 :(得分:0)

您可以尝试使用between,如下所示:

SELECT * 
FROM   employees emp 
WHERE (emp.availablefrom between  '08:15:00.0000000' and '09:30:00.0000000')
and (emp.availableto between '08:15:00.0000000'  and '09:30:00.0000000')

答案 3 :(得分:0)

Select * from employees emp where (emp.AvailableFrom<='08:15:00.0000000' and emp.AvailableTo>='09:30:00.0000000')

谢谢大家......我刚刚得到了所需的结果,使用上面的查询..