繁体   English   中英

SQL Server 2016的“在时区”功能无法按预期工作

[英]SQL Server 2016's “at time zone” function not working as expected

我在Amazon AWS上使用SQL Server 2016。 从亚马逊的小店寄出我的电子邮件的时间不正确。 当我尝试在本地重新创建此错误时,时间是正确的。 这是我如何at time zone使用的示例。

getDate() at time zone 'utc' at time zone u.timezone

其中u.timezone是用户的时区, u表示别名表users

输出的时间是UTC时间,所以我看到的是7:36pm而不是2:36pm (它们是用MomentJS格式化的)

对不起,伙计们,我真的不知道从哪开始。

UPDATE

我的服务器正在将正确的时间(具有正确的时区偏移)发送到电子邮件工厂。 服务器创建电子邮件时,将使用MomentJS格式化时间。 准系统的moment()函数将花费一个带有时区偏移量(-5:00)的时间,并将其调整为本地计算机的本地时间。 我计算机上的本地时间是EST,但是不是Amazon(正在创建电子邮件的地方)的本地时间。 因此,我必须使用moment.parseZone()

MomentJS文档中

If your date format has a fixed timezone offset, use moment.parseZone:
moment.parseZone("2013-01-01T00:00:00-13:00");
This results in a date with a fixed offset:
"2013-01-01T00:00:00-13:00"

由于直到将更改推送到我们的开发环境中之前,我才能看到它,所以我无法知道是否可以解决此问题,但是我认为这是问题所在。

我的服务器向电子邮件工厂发送了正确的时间(具有正确的时区偏移)。 服务器创建电子邮件时,使用MomentJS格式化时间。

准系统的moment()函数将花费一个时区偏移量(-5:00),并将其调整为本地计算机的本地时间。

我计算机上的本地时间是EST,但是不是Amazon(正在创建电子邮件的地方)的本地时间。 因此,我必须使用moment.parseZone()

更改为moment.parseZone()解决此问题。 问题解决了。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM