Фильтрация диапазона дат по рабочим часам

У меня есть диапазон дат:

SET @declared_start_datetime = '11/02/2015 07:00:00'
SET @declared_end_datetime = '11/09/2015 18:00:00'

Это работало до тех пор, пока я не понял, что все записи извлекаются с 7:00 2 ноября до 18:00 9 ноября.

Что мне нужно сделать, это вытащить все записи из этих дат, но исключить субботу / воскресенье и только между 7:00 и 18:00 для понедельника-пятницы.

Я использую SQL Server, проходящий через связанный сервер MYSQL, поэтому я использую OPENQUERY. Вот пример того, что я имею до сих пор.

DEClare @session varchar(max) = 'SELECT * FROM database.session WHERE CREATIONTIMESTAMP between ''''' + convert(nvarchar(50),@converted_start_datetime, 120) + ''''' and ''''' + convert(nvarchar(50),@converted_end_datetime, 120) + ''''''
SET @session = 'SELECT * INTO ##session FROM OPENQUERY(mxie,''' + @session + ''')'
exec(@session)

Как я могу исключить субботу и воскресенье и настроить его так, чтобы только тянуло время, когда бизнес открыт?

Редактировать:

DEClare @session varchar(max) = 'SELECT * FROM database.session WHERE ((CREATIONTIMESTAMP between ''''' + convert(nvarchar(50),@converted_start_datetime, 120) + ''''' and ''''' + convert(nvarchar(50),@converted_end_datetime, 120) + ''''')
                                                                            AND (TIME(CREATIONTIMESTAMP) between ''''' + convert(nvarchar(50),@business_opens_time, 108) + ''''' and ''''' + convert(nvarchar(50),@business_closes_time, 108) + '''''))'
SET @session = 'SELECT * INTO ##session FROM OPENQUERY(mxie,''' + @session + ''')'
exec(@session)
select * from ##session
drop table ##session

Это не исключает субботы или воскресенья, но в настоящее время возвращает 0 результатов. если я поменяю И на ИЛИ, он вернет результаты, но не то, что я ищу.

Я ищу понедельник - пятницу с 7:00 до 18:00 для каждого из дней.

0 ответов

Другие вопросы по тегам