在 SQL 查询中高效地将 UTC 日期时间转换为本地时间
许多数据库系统以 UTC 格式存储时间戳以保持一致性。 本指南演示了如何直接在 SQL 查询中将这些 UTC 日期时间列转换为本地时间,从而无需外部代码。
SQL Server 2008 及更高版本:
此方法利用 SWITCHOFFSET
函数进行精确转换:
<code class="language-sql">SELECT CONVERT(datetime, SWITCHOFFSET(CONVERT(datetimeoffset, MyTable.UtcColumn), DATENAME(TzOffset, SYSDATETIMEOFFSET()))) AS ColumnInLocalTime FROM MyTable</code>
替代(详细)方法:
更直接但不太优雅的方法使用 DATEADD
和 DATEDIFF
:
<code class="language-sql">SELECT DATEADD(mi, DATEDIFF(mi, GETUTCDATE(), GETDATE()), MyTable.UtcColumn) AS ColumnInLocalTime FROM MyTable</code>
主要考虑因素:
-
) 可能会产生不可预测的结果。 上述方法避免了这个问题。此信息使您能够直接在 SQL 查询中执行高效且准确的 UTC 到本地时间转换。
以上是如何在 SQL 中将 UTC 日期时间列转换为本地时间?的详细内容。更多信息请关注PHP中文网其他相关文章!