代码之家  ›  专栏  ›  技术社区  ›  Chad Moran

如何存储和比较时区敏感时间

  •  4
  • Chad Moran  · 技术社区  · 16 年前

    我有一个数据结构,其中一个实体将时间存储为 int (每天几分钟)快速比较。该实体还有一个返回到时区表的外键引用,该表包含.NET CLR ID名称及其标准时间/夏令时缩写。

    由于此信息存储为不区分时区—我想知道如何在LINQ to SQL中将其转换为UTC日期时间,以便与UTC中的其他时间进行比较。

    只是要明确的是,这种转换必须完成 服务器端 这样我就可以在SQL Server而不是客户端上执行过滤。这样做的原因是为了确保我们考虑支持DST的时区。

    我使用的是.NET3.5SP1和SQLServer2008。

    2 回复  |  直到 16 年前
        1
  •  2
  •   Chromatix    16 年前

    理想情况下,时间应该以UTC格式存储在数据库中,并且只能转换为一些本地时区(在适当的情况下包括DST因子)进行显示。这是 如果“快速比较”是你的目标,那就对了。

    您可能会发现,添加一个包含UTC时间的额外字段、修改客户机以添加此信息以及运行一个脚本来一次性计算现有条目的时间是最简单的。

        2
  •  2
  •   Chad Moran    16 年前

    推荐文章