在SQL Server中,我想创建一个表来节省事件的时间,并希望将其转换为用户选择的时区以进行显示。让我们说,如果在格林尼治标准时间1:00 PM在伦敦发生事件,那就是美国东部标准时间上午8:00。
给定这个例子,我想创建一个框架,
用户可以保存事件和时间的位置(提供事件的时区)
阅读这些事件,并在他喜欢的时区(美国东部时间)中显示时间
如何在SQL Server中完成此操作。
在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命令:
DATETIMEOFFSET
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小时)