簡體   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