首页 > 数据库 > mysql教程 > 如何在 SQL Server 中将 UTC 日期时间列转换为本地时间?

如何在 SQL Server 中将 UTC 日期时间列转换为本地时间?

Barbara Streisand
发布: 2025-01-17 04:36:09
原创
124 人浏览过

How to Convert UTC Datetime Columns to Local Time in SQL Server?

在 SQL Server 查询中将 UTC 转换为本地时间

在 SQL Server 查询中有效地将 UTC 日期时间列转换为本地时间对于准确的数据呈现和分析至关重要。 以下是有效的方法,可以避免潜在的陷阱:

SQL Server 2008 及更高版本:

  • SWITCHOFFSET()CONVERT(): 这种强大的方法可以处理时区偏移:
<code class="language-sql">SELECT CONVERT(datetime, 
               SWITCHOFFSET(CONVERT(datetimeoffset, 
                                    MyTable.UtcColumn), 
                            DATENAME(TzOffset, SYSDATETIMEOFFSET()))) 
       AS ColumnInLocalTime
FROM MyTable</code>
登录后复制
  • DATEADD()DATEDIFF()GETDATE(): 更简洁的替代方案:
<code class="language-sql">SELECT DATEADD(mi, DATEDIFF(mi, GETUTCDATE(), GETDATE()), MyTable.UtcColumn) 
       AS ColumnInLocalTime
FROM MyTable</code>
登录后复制

重要提示: 强烈建议不要使用 - 运算符直接进行日期减法。 由于潜在的竞争条件,这可能会导致不可预测的结果。

夏令时 (DST) 注意事项:

上述方法本身并不处理 DST 转换。如需精确的 DST 调整,请参阅 Stack Overflow 资源:

如何在 SQL Server 中创建夏令时开始和结束函数

以上是如何在 SQL Server 中将 UTC 日期时间列转换为本地时间?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板