Как выбрать дату и время, взятые из другой таблицы в SQL Server - PullRequest
0 голосов
/ 30 августа 2018

У меня есть тысячи отсутствующих записей в таблице отсутствий, в которой есть поля User_Id и Date_Time. enter image description here

Тогда у меня также есть таблица Time_Setting с полями Start_Time и Finish_Time. enter image description here

Как выбрать 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'},

Я просто хочу показать сегодняшнее отсутствие

Ответы [ 3 ]

0 голосов
/ 30 августа 2018

Я думаю, это то, что вы могли бы использовать:

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)
0 голосов
/ 30 августа 2018

Это вернет Date_Time в таблице отсутствия со всем интервалом времени, взятым из таблицы Time_Setting

SELECT  *
FROM    Absence_Table
    INNER JOIN  Time_Setting ON CONVERT(TIME,Date_Time) BETWEEN Start_Time and Finish_Time
0 голосов
/ 30 августа 2018

Вы имеете в виду:

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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...