我正在为我的团队生成一份报告,该报告要求我根据今天的日期(IST 区域)在 sql server 中选择行
这份报告严格基于我的工作时间(06.00 IST 到 22.00 IST)。
服务器位于美国,位于 CST 区域。
例如,今天的日期是 04/04/2013。当我开始在 06.00 IST 上工作时,它相当于 (04/03/2013 19.30 CST),当我完成工作时,它将是 (04/04/2013 11.30 CST)。
所以我需要的是一个过滤器,它允许我根据上述条件过滤记录。
注意:我尝试了以下查询,但当两个时区在同一日期时,它并没有达到我的预期。
DECLARE @date DATETIME,@startdate DATETIME,@starthour DATETIME
DECLARE @enddate DATETIME,@endhour DATETIME,@newdate DATETIME
SET @date = DATEADD(DAY, DATEDIFF(DAY, 0, getdate()-1), 0)
SET @starthour = DATEADD(HOUR,19,@date)
set @startdate= DATEADD(MINUTE,30,@starthour)
Set @newdate= DATEADD(DD,1,@date)
SET @endhour = DATEADD(HOUR,11,@newdate)
set @enddate= DATEADD(MINUTE,30,@endhour)
select @startdate, @enddate
select * from dbo.MyTable where TIMESTAMP Between @startdate and @enddate
由于此报告需要每小时生成一次,因此即使日期同步,我也需要一些帮助来正确计算日期时间。