Как проверить наличие записи в определенном временном интервале с помощью SQL
Привет,
Здесь я собираюсь заполнить табель учета рабочего времени против конкретного действия, назначенного мне(пользователю).
Предположим, что имя пользователя-user1, а действие, назначенное ему, - A1 .Теперь пользователь(user1) должен заполнить табель учета рабочего времени против A1 следующим образом
СР. дата активности пользователей fromTime свремя
1 user1 A1 2018-03-21 12:30 2:30
Когда пользователь1 собирается снова заполнить табель учета рабочего времени, он/она не должен использовать время между предыдущим fromTime и toTime.
Пожалуйста, помогите мне
Что я уже пробовал:
Это то, что я пробовал ,
DECLARE @FROM TIME SET @FROM='12:30' select complDate,fromtime,totime from tblTimeSheetMaster where @FROM between Convert(time,fromtime) and Convert(time,totime) and complDate='2018-03-21'
Maciej Los
А что не так с вашим кодом?
SujataJK
В моей таблице это рекордный набор
Идентификатор complNo complNature complDate assignto статус приорит fromtime свремя
1. B0001/17-18 2018-03-1 баги HEMANT High Active 12:15 02:15
2. B0001/17-18 2018-03-21 баги HEMANT High Active 12:15 01:15
Согласно моему запросу результат будет следующим
2. B0001/17-18 2018-03-21 баги HEMANT High Active 12:15 01:15
но он не показывает никаких записей.
Maciej Los
Храните ли вы [FromTime] и [ToTime] в виде текста?
SujataJK
нет.
тип данных fromTime и totime - это время
Maciej Los
Взгляните на свои входные данные...
Время начала: 12:15
Время работы: 01:15
Вы ищете 12:30
В зависимости от настроек системы, 01:15-это меньше, чем 12:15, потому что 01:15-это после полуночи...
Понял?
Я бы предложил хранить эти два значения в виде типа данных DateTime.
SujataJK
да, вы правы.Я получил свою ошибку, большое спасибо.