【问题标题】:Azure SQL database time issueAzure SQL 数据库时间问题
【发布时间】:2017-08-04 02:50:23
【问题描述】:

我有一个在设置为 PST 的 Azure 服务器上运行的 .net 应用程序,它连接到设置为 UTC 时间的 Azure SQL 服务器。我在很多存储过程中使用函数 getDate()。前进时区将是一个关键问题,需要使它们保持同步。使用函数 DateAdd(hour, -8, getDate()) 不考虑夏令时。我想知道是否有更好的方法来处理这个问题。

【问题讨论】:

    标签: azure azure-sql-database


    【解决方案1】:

    将所有datetime 列更改为datetimeoffset(7) 列。这些列存储带有日期和时间的时区信息。

    接下来将您的 GETDATE() 调用更改为 SYSDATETIMEOFFSET()

    最后,您可以使用AT TIME ZONE关键字转换存储的时间信息:

    SELECT   *,
             [Time] AT TIME ZONE 'Pacific Standard Time' AS PstTime
    FROM     TheTable
    
    • 我尝试将datetime 值始终存储在UTC(或任何其他任意区域)中,但总是遇到问题。切换到datetimeoffset(7) 后,我几乎所有的问题都得到了解决。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-12-03
      • 1970-01-01
      • 2017-10-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-15
      • 1970-01-01
      相关资源
      最近更新 更多