Запрос на выбор записи между следующим 1 часом от заданного времени даты, также данные должны быть менее 7 дней - PullRequest
0 голосов
/ 25 марта 2020

У меня есть планировщик, который запускается каждый час. Мне нужно извлекать данные старше 7 дней, и данные должны находиться между промежутком времени, прошедшим планировщиком, до части времени, прошедшей планировщиком, + 59 мин. (Для извлечения данных между текущим часом планировщика и следующим планировщиком час работы)

@ schedulartime = 2020-03-25 23: 00

 id       createddate
-------    --------
1           2020-03-17 23:05
2           2020-03-24 23:05
3           2020-03-15 23:59
4           2020-03-15 22:25

Запрос должен вернуть идентификаторы 1,3

Пока я пытался со временем

select *
from tablename
where CreatedDate <= dateadd(day,-7,@schedulartime) and
      CONVERT(TIME, CreatedDate) >= CONVERT(TIME, @schedulartime) and
      CONVERT(TIME, CreatedDate) < convert(time,dateadd(hour,1,@schedulartime))

, который завершается неудачей, если я передаю schedulartime больше 23: 00

ie: если schedulertime = 23: 05, с моим запросом CONVERT (TIME, CreatedDate) 23:05 <00:04 не удалось </p>

1 Ответ

0 голосов
/ 25 марта 2020
DECLARE @schedulartime DATETIME = '2020-03-25 23:09'
select * 
from [dbo].[Table_1]
where cdate <= dateadd(n, 59, dateadd(n,-10080,@schedulartime)) and
      cdate < dateadd(n,59,@schedulartime)
...