首页 > 解决方案 > 如何从 SQL Server 中的另一个表中选择时间跨度的日期时间

问题描述

我在缺席表中有数千条缺席记录,其中包含 User_Id 和 Date_Time 字段。 在此处输入图像描述

然后我还有 Time_Setting 表,其中包含 Start_Time 和 Finish_Time 字段。 在此处输入图像描述

如何在缺席表中选择 Date_Time,所有时间跨度均取自 Time_Setting 表?所以我想显示与 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'},

我只想展示今天的缺席

标签: sql-serverdatetime

解决方案


你的意思是:

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)

推荐阅读