作为示例这里:
DECLARE @LocalTime DATETIMEOFFSET = '2021-09-01 10:00:00.7230011 -07:00';
SELECT *
FROM [vw_GetOrgChart]
FOR SYSTEM_TIME AS OF @LocalTime AT TIME ZONE 'UTC';
我收到错误:
消息 102,第 15 级,状态 1,第 3 行
“AT”附近的语法不正确
我找不到“AT TIME ZONE”语句的语法详细解释,除了this,有什么想法吗?
SQL Server 版本:Microsoft SQL Server 2019 (RTM-CU23) (KB5030333) - 15.0.4335.1 (X64)
文档是错误的。去年添加了有关
AT TIME ZONE
可以使用的不正确信息,但是,没有对 PR 进行尽职调查,这意味着添加了不正确的信息(尽管我认为开源文档很好,它也确实有它的缺陷)。
Randolph West在我提出的PR中证实了这一点:
我最初在去年授权了添加此更改的 PR,并且事先没有进行尽职调查以正确测试它。
在
数据库上,您可以执行以下操作:WideWorldImporters
DECLARE @CustomerTimeZone NVARCHAR(128) = 'Central European Standard Time'; SELECT StockItemID, ValidFrom, --Assign the known offset only ValidFrom AT TIME ZONE 'Pacific Standard Time' AS OrderDate_TimeZonePST, --Assign the known offset, then convert to another time zone ValidFrom AT TIME ZONE @CustomerTimeZone AS OrderDate_TimeZoneCustomer FROM Warehouse.StockItems;
但是,你是对的,
与AT TIME ZONE
不兼容。AS OF
我不会直接批准您的 PR(这会完全删除该示例),而是会回滚去年的更改。