【问题标题】:Convert datetime of a timezone to GMT in sql server在sql server中将时区的日期时间转换为GMT
【发布时间】:2015-02-11 23:23:20
【问题描述】:

我需要将时间记录转换为时区并将其与当前时间进行比较。 为此,我想在 SQL Server 中将时区的日期时间转换为 GMT 时区。

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

也可以从sql server中找出客户端的时区吗?

【问题讨论】:

  • 您可以从 sql server 中找出 sql server 的时区,但如果您的客户端是 Web 客户端,我不知道 sql server 是如何知道这一点的。您可能希望从您的应用程序中获取该信息并将其传递。
  • 好的。我明白了。如何将带时区的日期时间转换为 GMT 时间?
  • 关于转换日期的文章太多了。你读了多少?我把你的确切标题放到谷歌上,然后想出了一个pretty nice article,它解释了你正在尝试做的事情的细微差别。

标签: sql-server sql-server-2008


【解决方案1】:

如果您的日期时间存储为 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

【讨论】:

    猜你喜欢
    • 2021-05-02
    • 2011-08-29
    • 2014-02-18
    • 2018-04-13
    • 2016-11-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多