如何解释SQL Server中的DateTimeOffset列?

时间:2017-03-27 20:31:44

标签: sql-server datetimeoffset

如果我有一个datetimeoffset类型的SQL列,该列的值告诉我什么?

例如,如果我看到2017-03-27 15:00:00.6866682 -04:00是LOCAL时间?

意义,美国东部时间下午3点和格林威治标准时间下午7点?或者GMT是偏移量,意味着格林尼治标准时间下午3点和美国东部标准时间上午11点?

换句话说,如果网站登录datetimeoffset用户登录,而我(在新英格兰)和我在莫斯科的朋友在同一时间(我的时间下午3点)登录,我会看到:

2017-03-27 15:00:00.6866682 -04:00
2017-03-27 22:00:00.6866682 +03:00

或:

2017-03-27 19:00:00.6866682 -04:00
2017-03-27 19:00:00.6866682 +03:00

或者,它是否可以按服务器配置?如果是这样,我该如何检查设置?

感谢。我之前已经处理过这个问题,但由于某种原因,这些知识根本不会坚持下去。

1 个答案:

答案 0 :(得分:2)

偏移量反映在值中。

2017-03-27 16:00:00.6866682 +00:00 = select switchoffset(sysdatetimeoffset(),'-05:00')

http://rextester.com/YNJC2084

偏移量记录为当时有效的偏移量。因此,如果时区的偏移量因日光节省而变化,那么您将看到给定时区的两个不同偏移量,具体取决于一年中的时间。

您可以使用switchoffset()更改偏移量,例如

2017-03-27 15:44:35 -05:00

返回std::vector<const char*> getExtensions() { std::vector<const char*> extensions; // let's get a list of available extensions from Vulkan uint32_t availableExtensionCount = 0; vkEnumerateInstanceExtensionProperties(nullptr, &availableExtensionCount, nullptr); std::vector<VkExtensionProperties> availableExtensions(availableExtensionCount); vkEnumerateInstanceExtensionProperties(nullptr, &availableExtensionCount, availableExtensions.data()); for (const VkExtensionProperties& extension : availableExtensions) { extensions.push_back(extension.extensionName); } return extensions; }