我有一个日期范围:
SET @declared_start_datetime = '11/02/2015 07:00:00'
SET @declared_end_datetime = '11/09/2015 18:00:00'
这一直有效,直到我意识到它从11月2日上午7点到11月9日下午6点才取出所有记录。
我需要做的是从这些日期中提取所有记录,但不包括星期六/星期日,且仅在星期一至星期五的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结果。如果我将AND更改为OR,它将返回结果,但不会返回我要查找的内容。
我正在寻找周一至周五上午7:00至下午6:00的每一天。