在SQL Server中,我想创建一个表来节省事件的时间,并希望将其转换为用户选择的时区以便显示。让我们说如果在格林尼治标准时间下午1点在伦敦发生事件,那将是美国东部时间早上8点。
鉴于此示例,我想创建一个框架作品
用户可以保存事件和时间(给予事件的时区)
阅读这些活动,时间显示在他喜欢的时区(美国东部时间)
如何在SQL Server中完成此任务。
答案 0 :(得分:4)
在SQL Server 2008中,使用DATETIMEOFFSET数据类型,该数据类型是DATETIME加上包含的时区偏移量。
SELECT CAST('2010-11-23 16:35:29+09:00' AS datetimeoffset)
将于2010年11月23日下午4:35在+9小时(从格林威治标准时间)开始。
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
同一时间,不同的时区(距GMT +1小时)
答案 1 :(得分:0)
DateTime.UtcNow
)答案 2 :(得分:0)
我解决类似问题的方法是执行以下操作: