如何解释 SQL 服务器中的 DateTimeOffset 列?
How to Interpret DateTimeOffset column in SQL Server?
如果我有 SQL 类型的列 datetimeoffset
,该列的值告诉我什么?
例如,如果我看到 2017-03-27 15:00:00.6866682 -04:00
是当地时间吗?
意思是,美国东部时间下午 3 点和格林威治标准时间晚上 7 点?还是格林威治标准时间有一个偏移量,意思是格林威治标准时间下午 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
或者,是否可以按服务器配置?如果是这样,我将如何检查设置?
谢谢。我以前处理过这个问题,但由于某些原因,这些知识根本无法坚持。
偏移量反映在值中。
2017-03-27 19:00:00.6866682 +03:00
= 2017-03-27 16:00:00.6866682 +00:00
偏移量记录为当时有效的偏移量。因此,如果夏令时的时区偏移量发生变化,那么根据一年中的不同时间,您将看到给定时区的两个不同偏移量。
您可以使用 switchoffset()
来更改偏移量,例如
select switchoffset(sysdatetimeoffset(),'-05:00')
returns 2017-03-27 15:44:35 -05:00
如果我有 SQL 类型的列 datetimeoffset
,该列的值告诉我什么?
例如,如果我看到 2017-03-27 15:00:00.6866682 -04:00
是当地时间吗?
意思是,美国东部时间下午 3 点和格林威治标准时间晚上 7 点?还是格林威治标准时间有一个偏移量,意思是格林威治标准时间下午 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
或者,是否可以按服务器配置?如果是这样,我将如何检查设置?
谢谢。我以前处理过这个问题,但由于某些原因,这些知识根本无法坚持。
偏移量反映在值中。
2017-03-27 19:00:00.6866682 +03:00
= 2017-03-27 16:00:00.6866682 +00:00
偏移量记录为当时有效的偏移量。因此,如果夏令时的时区偏移量发生变化,那么根据一年中的不同时间,您将看到给定时区的两个不同偏移量。
您可以使用 switchoffset()
来更改偏移量,例如
select switchoffset(sysdatetimeoffset(),'-05:00')
returns 2017-03-27 15:44:35 -05:00