【发布时间】:2020-11-05 11:40:51
【问题描述】:
我有一个日期时间列 changedate,我需要使用它来获取自下午 1 点以来在上周发生更改的行。不幸的是,本专栏采用的是当地时间 (EST)。服务器是 Microsoft SQL Server 2016。
这是我现在的查询:
DECLARE @since datetime = DATEADD(week,-1,SMALLDATETIMEFROMPARTS(YEAR(GETDATE()), MONTH(GETDATE()), DAY(GETDATE()), 13, 0)) AT TIME ZONE 'Eastern Standard Time'
SELECT * FROM table WHERE changedate AT TIME ZONE 'Eastern Standard Time' >= @since
由于我对列和@since 都使用了AT TIME ZONE,这是否能正确解释夏令时的变化?根据我找到的文档,这是我的理解,但我不能 100% 确定它是如何工作的,或者我是否遗漏了一些东西。
【问题讨论】:
标签: sql sql-server timezone dst