Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 筛选正在工作的同事_Sql_Sql Server_Date_Select - Fatal编程技术网

Sql 筛选正在工作的同事

Sql 筛选正在工作的同事,sql,sql-server,date,select,Sql,Sql Server,Date,Select,我有一个叫做Work的表,列是 EmployeeID(key), Date (datetime, when the employee checked in to work), Work hours (int, the hours he/she will be working for) 这是一个学校项目,所以我根本不能修改表格。 我必须写一篇精选文章,回馈那些在那一刻工作的人,这就是我目前得到的: select EmployeeID as Availables, w.Date as Start

我有一个叫做Work的表,列是

EmployeeID(key), 
Date (datetime, when the employee checked in to work),
Work hours (int, the hours he/she will be working for)
这是一个学校项目,所以我根本不能修改表格。 我必须写一篇精选文章,回馈那些在那一刻工作的人,这就是我目前得到的:

select EmployeeID as Availables, w.Date as Started at
from Work w
where datepart(year,w.Date) = DATEPART(year,getdate()) and 
datepart(month,w.Datum) = datepart(month,getdate()) and
datepart(day,w.Date) = datepart(day,getdate()) and
datepart(hour,w.Date) <= datepart(hour,getdate()) and
datepart(hour,w.Date)+w.WorkHours > datepart(hour,getdate())
选择EmployeeID作为可用项,w.日期作为起始日期
从w工作
其中datepart(year,w.Date)=datepart(year,getdate())和
datepart(月,w.Datum)=datepart(月,getdate())和
datepart(day,w.Date)=datepart(day,getdate())和
datepart(小时,w.Date)datepart(小时,getdate())
这种解决方案是不对的,因为如果我在凌晨1:00运行查询,而该员工在前一天晚上23:00开始工作(这是可能的),那么他就不会在列表中。
我不知道如何解决这个问题。

您应该更改查找当前工作员工的逻辑

select EmployeeID as Availables, w.Date as Started at
from Work w where getdate() between w.Date and DATEADD(HOUR, w.WorkHours,  w.Date)

您应该更改查找当前正在工作的员工的逻辑

select EmployeeID as Availables, w.Date as Started at
from Work w where getdate() between w.Date and DATEADD(HOUR, w.WorkHours,  w.Date)

您应该更改查找当前正在工作的员工的逻辑

select EmployeeID as Availables, w.Date as Started at
from Work w where getdate() between w.Date and DATEADD(HOUR, w.WorkHours,  w.Date)

您应该更改查找当前正在工作的员工的逻辑

select EmployeeID as Availables, w.Date as Started at
from Work w where getdate() between w.Date and DATEADD(HOUR, w.WorkHours,  w.Date)
试试这个

select EmployeeID as Availables, w.Date as Started at
from Work w where w.Date>= DATEADD(HH,  w.WorkHours,w.Date,) and  w.Date<=getdate()
选择EmployeeID作为可用项,w.日期作为起始日期
从Work w,其中w.Date>=DATEADD(HH,w.WorkHours,w.Date,)和w.Date试试这个

select EmployeeID as Availables, w.Date as Started at
from Work w where w.Date>= DATEADD(HH,  w.WorkHours,w.Date,) and  w.Date<=getdate()
选择EmployeeID作为可用项,w.日期作为起始日期
从Work w,其中w.Date>=DATEADD(HH,w.WorkHours,w.Date,)和w.Date试试这个

select EmployeeID as Availables, w.Date as Started at
from Work w where w.Date>= DATEADD(HH,  w.WorkHours,w.Date,) and  w.Date<=getdate()
选择EmployeeID作为可用项,w.日期作为起始日期
从Work w,其中w.Date>=DATEADD(HH,w.WorkHours,w.Date,)和w.Date试试这个

select EmployeeID as Availables, w.Date as Started at
from Work w where w.Date>= DATEADD(HH,  w.WorkHours,w.Date,) and  w.Date<=getdate()
选择EmployeeID作为可用项,w.日期作为起始日期


从Work w where w.Date>=DATEADD(HH,w.WorkHours,w.Date,)和w.Date如果他停止工作,你有检查出时间吗?不幸的是,我没有。我只有他轮班的时间。如果他停止工作,你有没有检查过他的下班时间?不幸的是,我没有。我只有他轮班的时间。如果他停止工作,你有没有检查过他的下班时间?不幸的是,我没有。我只有他轮班的时间。如果他停止工作,你有没有检查过他的下班时间?不幸的是,我没有。我只知道他轮班的时间。参数数据类型datetime对于dateadd函数的参数2无效。@h2c如果w.Date不是datetime字段,则应将其转换为datetime对象。它是datetime字段。@h2c我更改了查询。请重新检查dateadd函数的参数2的参数数据类型datetime无效。@h2c如果w.Date不是datetime字段,则应将其转换为datetime对象,因为它是datetime字段。@h2c我更改了查询。请重新检查dateadd函数的参数2的参数数据类型datetime无效。@h2c如果w.Date不是datetime字段,则应将其转换为datetime对象,因为它是datetime字段。@h2c我更改了查询。请重新检查dateadd函数的参数2的参数数据类型datetime无效。@h2c如果w.Date不是datetime字段,则应将其转换为datetime对象,因为它是datetime字段。@h2c我更改了查询。谢谢你的回答!但是dateadd函数仍然响应相同的错误:参数数据类型datetime对于dateadd函数的参数2无效。感谢您的回答!但是dateadd函数仍然响应相同的错误:参数数据类型datetime对于dateadd函数的参数2无效。感谢您的回答!但是dateadd函数仍然响应相同的错误:参数数据类型datetime对于dateadd函数的参数2无效。感谢您的回答!但是dateadd函数仍然响应相同的错误:参数数据类型datetime对于dateadd函数的参数2无效。