首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >SQL时区/ DST问题

SQL时区/ DST问题
EN

Stack Overflow用户
提问于 2019-04-20 02:12:49
回答 1查看 63关注 0票数 0

我在SQL中有一个时间列,存储在东部标准时间中。我正在尝试将该时间转换为UTC。我遇到了一些问题,有时DST是计算出来的,有时却不是。

以下面的代码为例:

代码语言:javascript
运行
复制
DECLARE @Temp TABLE (T TIME);
INSERT INTO @Temp (T) VALUES ('15:00');
SELECT T, 
GETDATE() AT TIME ZONE 'Eastern Standard Time', 
CAST(T AS DATETIME) AT TIME ZONE 'Eastern Standard Time' 
FROM @Temp

此查询的结果为:

代码语言:javascript
运行
复制
15:00:00.0000000    
2019-04-19 18:08:14.090 -04:00    
1900-01-01 15:00:00.000 -05:00

所以问题是,如果两个时间都是“东部标准时间”,为什么一个日期的偏移量是-04:00 (正确),而另一个日期的偏移量是-05:00 (只有当我们不在DST时才是正确的)

EN

回答 1

Stack Overflow用户

发布于 2019-04-20 03:05:33

问题是,TIME数据类型在转换为datetime时,日期为1/1/1900,该日期在-05:00偏移量中是合法的。为了解决这个问题,我将当前日期添加到时间中,现在一切都按预期运行。

代码语言:javascript
运行
复制
CAST(T AS DateTime) + CAST(CAST(GETDATE() AS DATE) AS DateTime) AT TIME ZONE 'Eastern Standard Time'
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55766027

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档