У меня есть эта таблица:
CREATE TABLE [dbo].[#TABLE_1]
(
[numreq] [INT] NULL,
[rangetime] [NVARCHAR](300) NULL
) ON [PRIMARY]
INSERT INTO [dbo].[#TABLE_1]
VALUES ('2', '2019-09-27 07:30:00.000'),
('3', '2019-09-27 21:30:00.000'),
('4', '2019-09-28 09:30:00.000'),
('5', '2019-09-28 21:30:00.000'),
('6', '2019-09-29 09:30:00.000'),
('7', '2019-09-29 21:30:00.000'),
('8', '2019-09-30 07:30:00.000'),
('9', '2019-09-30 10:00:00.000'),
('9', '2019-09-30 11:00:00.000'),
('9', '2019-10-01 10:00:00.000')
Я хочу выбрать строки за промежуток времени с 09:00 до 09:00. Если сегодня вторник, 1 октября, то я хочу все от 28.09.2019 09:00
до 01.10.2019 09:00
.
. Я использовал приведенный ниже запрос, но не получил требуемых результатов.
select *
from [dbo].[#TABLE_1]
where (((DATEPART(DW,getdate())) = 2 AND (CAST (rangetime as DATE)) >= (CAST(DATEADD(hh,-7,getdate())-3 as DATE)) and (CAST(rangetime as TIME)>='09:00:00')))
order by rangetime desc
Как исправитьэто?