22,206
社区成员
发帖
与我相关
我的任务
分享
DECLARE @cdate datetime
SET @cdate = GETDATE()
-- 算出日期范围
DECLARE @startDate datetime
DECLARE @endDate datetime
SET @startDate = CONVERT(datetime,
CONVERT(varchar(7),@cdate,120)+'-01 08:00',
120)
SET @endDate = DATEADD(month,1,@startDate)
--SELECT @startDate, @endDate
-- 用范围查找可以利用索引
SELECT *
FROM table1
WHERE adddate >= @startDate
AND adddate < @endDate
@startDate @endDate
----------------------- -----------------------
2015-10-01 08:00:00.000 2015-11-01 08:00:00.000
select * from table1 where year(adddate)= year(@cdate) and month(adddate)=month(@cdate) and adddate between dateadd(HH,8,CONVERT(nvarchar(7),getdate(),23)+'-01') and dateadd(MM,1,dateadd(HH,8,CONVERT(nvarchar(7),getdate(),23)+'-01'))