我的缺席表中有数千个缺席记录,其中包含User_Id和Date_Time字段。 mathematical operation
然后我还有Time_Setting表,其中包含Start_Time和Finish_Time字段。
如何从缺席时间表中选择所有时间跨度的缺席日期时间表? 所以我想显示与Time_Setting表相对应的缺席表中的所有记录。
示例:
{'2021','2018-08-30 07:20:00'},
{'2021','2018-08-30 12:01:00'},
{'2021','2018-08-30 13:00:00'},
{'2021','2018-08-30 16:02:00'},
我只想表明今天的缺席
答案 0 :(得分:0)
您的意思是:
select Start_Time, Finish_Time, absence.*
from time_setting ts
join absence a
on a.date_time>=floor(convert(float,getdate()))+convert(datetime,ts.start_time)
and a.datetime<floor(convert(float,getdate()))+convert(datetime,ts.FinishTime)
答案 1 :(得分:0)
我认为这是您可以使用的:
SELECT UserID, Date_Time
FROM Absence AS A
INNER JOIN Time_Settings AS TS ON CAST (Date_Time AS TIME) >= CAST (Start_Time AS TIME)
AND CAST (Date_Time AS TIME) <= CAST (Finish_Time AS TIME)
答案 2 :(得分:0)
这将返回缺勤表中的Date_Time,所有时间跨度都取自Time_Setting表
SELECT *
FROM Absence_Table
INNER JOIN Time_Setting ON CONVERT(TIME,Date_Time) BETWEEN Start_Time and Finish_Time