在Azure门户中,我可以获得服务器时间吗?

时间:2017-08-21 14:30:15

标签: azure azure-sql-database azure-web-app-service

我们看到的错误的最可能原因似乎是我们的azure数据库和web-app-service之间存在差异。

在我刚刚跳到远程桌面的过去,我知道如何检查它们是什么。我怎么能告诉现在呢?

查看活动日志并使用GETDATE(),夏令时(BST)似乎存在差异。我该如何改变这个? (假设我在这里确认答案是最好的问题)

3 个答案:

答案 0 :(得分:2)

SQL Azure数据库始终使用UTC时间。因此,您不应使用datetime数据类型。相反,你应该使用datetimeoffset。

您还应该使用sysdatetimeoffset()而不是使用getdate()来捕获系统日期。

当您从数据库表中检索日期时,您应该按照here所述使用“AT TIME ZONE”。

答案 1 :(得分:1)

所有Azure SQL数据库都使用UTC作为其日期和时间。您应该获得GETDATE或GETUTCDATE的相同值。这可以解释BST的差异。

答案 2 :(得分:0)

由于您已经提到了Azure App Service WebApp时区,我想强调一点,在Azure WebApp中,默认情况下,时区始终是UTC,但您可以更改它。

您还可以在注册表中找到该列表 在HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ WindowsNT \ CurrentVersion \ Time Zones下。如果无法识别字符串,则会回退到UTC。

测试它有效的最佳方法是从Kudu console输入时间。

示例:

WEBSITE_TIME_ZONE =东部标准时间 WEBSITE_TIME_ZONE = AUS东部标准时间

您可以通过名为“WEBSITE_TIME_ZONE”的Azure门户添加一个等于所讨论时区名称的应用程序设置(基本上与HKLM \ Software \ Microsoft \ Windows Nt \ CurrentVersion \ Time Zones中的密钥名称相同的字符串)。

有关详细信息,请参阅有关此特定设置的GitHub link