Ben*_*udo 18 sql-server timezone sql-server-2016
SQL Server 2016AT TIME ZONE似乎是不确定的。但是,我一直无法找到正式说明这一点或对其背后的推理给出理由的文档。
为什么是AT TIME ZONE不确定的?
执行:
CREATE TABLE Test (
LegacyTimestamp DATETIME,
Timestamp AS LegacyTimestamp AT TIME ZONE 'Eastern Standard Time' PERSISTED
);
Run Code Online (Sandbox Code Playgroud)
返回以下错误:
Msg 4936, Level 16, State 1, Line 1
Computed column 'Timestamp' in table 'Test' cannot be persisted because the column is non-deterministic.
Run Code Online (Sandbox Code Playgroud)
Low*_*n M 21
AT TIME ZONE 使用一些逻辑来计算夏令时。DST 偏移值不是一成不变的(它们可能会通过Windows 更新进行更改)并且外部包含在 Windows 注册表中,因此该AT TIME ZONE函数无法确定,因为它依赖于外部数据。
同样,这就是为什么sys.time_zone_info是视图而不是静态引用表的原因,它需要根据具有最新时区信息的注册表值进行计算。
| 归档时间: |
|
| 查看次数: |
1428 次 |
| 最近记录: |