2015-02-11 141 views
0

我有将时间w.r.的记录转换为时区并将其与当前时间进行比较的要求。 为此,我想在SQL服务器中将时区的日期时间转换为GMT时区。在sql server中将时区的datetime转换为GMT

即(2015年1月12日11:30 +5:30 ---> GMT标准时间

而且是可以从SQL Server找出客户的时区

+0

你可以找到从SQL Server SQL Server的时区,但如果您的客户端是一个Web客户端,我不知道SQL服务器如何能够知道。你会想从你的应用程序获取这些信息并传递给它。 – paqogomez 2015-02-11 23:29:27

+0

好的。我明白了。我如何将时区与日期时间转换为GMT时间? – 2015-02-11 23:31:17

+0

有很多关于转换日期的文章。你读过多少本书?我把你的确切标题,并在谷歌,并提出了一个[相当不错的文章](http://stackoverflow.com/questions/21491577/need-a-sql-server-function-to-convert-local-datetime -to-utc-that-supports-dst),它解释了你想要做的事情的细微差别。 – paqogomez 2015-02-11 23:37:52

回答

0

如果你的日期时间是什么?存储为DATETIMEOFFSET(或可转换为它),你可以简单地转换为DATETIME2(假设你想保持DATETIMEOFFSET的精度):

declare @dt datetimeoffset 

select @dt = 'Jan 12 2015 11:30 AM +05:30' 

select convert(datetime2, @dt, 1) 

它返回UTC时间:

2015-01-12 06:00:00.0000000 

这与用户的时区无关,因为它只是根据您提供的偏移量进行UTC计算的时区。

SqlFiddle

相关问题