小编典典

SQL Server如何在不同时区保持和使用时间

sql

在SQL Server中,我想创建一个表来节省事件的时间,并希望将其转换为用户选择的时区以进行显示。让我们说,如果在格林尼治标准时间1:00
PM在伦敦发生事件,那就是美国东部标准时间上午8:00。

给定这个例子,我想创建一个框架,

  1. 用户可以保存事件和时间的位置(提供事件的时区)

  2. 阅读这些事件,并在他喜欢的时区(美国东部时间)中显示时间

如何在SQL Server中完成此操作。


阅读 239

收藏
2021-04-07

共1个答案

小编典典

在SQL Server 2008中,使用DATETIMEOFFSET数据类型,该数据类型是DATETIME加上时区偏移量。

SELECT CAST('2010-11-23 16:35:29+09:00' AS datetimeoffset)

将会是格林尼治标准时间(GMT)+9小时(2010年11月23日下午4:35)。

SQL Server 2008还包含用于将DATETIMEOFFSET值从一个时区转换为另一个时区的函数和SQL命令:

SELECT 
SWITCHOFFSET(CAST('2010-11-23 16:35:29+09:00' AS datetimeoffset), '+01:00')

会导致:

2010-11-23 08:35:29.0000000 +01:00

同一时间,不同时区(格林尼治标准时间+1小时)

2021-04-07