执行 SQL select 查询时,可能需要将 UTC 日期时间列转换为本地时间,以方便更轻松的操作解释和展示。这种转换无需修改数据库或使用外部代码即可完成。
在 SQL Server 2008 或更高版本中,可以使用以下语法:
SELECT CONVERT(datetime, SWITCHOFFSET(CONVERT(datetimeoffset, MyTable.UtcColumn), DATENAME(TzOffset, SYSDATETIMEOFFSET()))) AS ColumnInLocalTime FROM MyTable
更短的替代方案是:
SELECT DATEADD(mi, DATEDIFF(mi, GETUTCDATE(), GETDATE()), MyTable.UtcColumn) AS ColumnInLocalTime FROM MyTable
避免使用减法 (-) 来计算日期差异非常重要,因为这种方法可能会因非原子操作而导致结果不准确。
提供的方法不考虑夏令时 (DST)。如果需要调整夏令时,请参考以下问题:
以上是如何在 SQL Select 语句中将 UTC 日期时间列转换为本地时间?的详细内容。更多信息请关注PHP中文网其他相关文章!