首页 > 解决方案 > 存储在 SQL Server DB 中的 DateTime 不考虑夏令时。当我把它拉出来时,我该如何解决这个问题?

问题描述

我无法控制 EST 中的日志日期时间的机器。它不会切换到夏令时。当我提取数据时,它会将我所有的报告都搞砸一个小时。有没有办法在我的查询中解决这个问题?使用 SQL Server 2014。

标签: sql-serverdatetimedst

解决方案


您可以使用 CASE 修复您的查询:

SELECT col1, col2, 
     CASE WHEN (date_col BETWEEN ... AND ...)
            OR (date_col BETWEEN ... AND ...)
            OR (date_col BETWEEN ... AND ...)
          THEN DATEADD(HOUR, 1, date_col) ELSE date_col END AS date_col
FROM tab_name;

我还将更新现有值并修复从应用程序中保存的问题,以避免将来出现这种情况。


推荐阅读