【问题标题】:How to convert between time zones in SQL Server 2008?如何在 SQL Server 2008 中的时区之间转换?
【发布时间】:2013-01-23 11:13:49
【问题描述】:

我正在使用 SQL Server 2008 R2,我想知道如何将 CST 时间转换为 IST 时间。我的 dtDate 列中已经有 CST 时间,并且想将其转换为 IST 格式。有人可以帮我弄一下吗?

【问题讨论】:

    标签: sql sql-server-2008 sql-server-2008-r2 timezone


    【解决方案1】:

    我假设您的意思是“中部标准时间”和“印度标准时间”,因为“CST”和“IST”可能意味着一些不同的东西。如果这是错误的,只需将您的时区的正确偏移量替换为如下所示:

    select cast(switchoffset(todatetimeoffset(dtDate, '-06:00'), '+05:30') as datetime)
    

    步骤如下:

    • Convert 将我们的日期时间转换为 datetimeoffset,这是一种时区感知数据类型。
    • Switch the offset 到一个新的时区。
    • 转换为日期时间(可选,但这似乎是您想要的)。

    【讨论】:

      【解决方案2】:

      我认为这不是一个完美的答案。我不知道你提到的时区,但这对我没有帮助。

      我在英国的一家美国公司工作,我在东部时区制作报告。我从中提取数据的系统将其所有日期都保存在 UTC 中。我运行报告的服务器托管在纽约,时间是美国东部时间。

      我正在报告历史数据,需要将表格上的日期转换为 ET 日期。我一直在减去 GETDATE() 和 GETUTCDATE() 之间的差异,但我意识到我现在在这些日期之间得到了差异,今天。我要转换的日期是历史日期,长话短说,一年中 8 个月的 ET 和 UTC 之间有 4 小时的差异,另外 4 个月有 5 小时的差异。

      如果您要转换夏令时区域的日期,您需要更复杂的解决方案

      【讨论】:

      • 你好海伦,欢迎来到 StackOverflow。如果答案对您的用例没有帮助,请提交另一个问题,而不是在答案中提问。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-16
      • 2014-03-01
      • 2013-05-08
      • 2023-04-05
      相关资源
      最近更新 更多