.NET 和 SQL Server - 日期时间或日期时间偏移量?

Gid*_*sey 3 .net c# sql-server datetime datetimeoffset

自从我使用 .NET 以来,我就一直在 .NET 和 SQL ServerDateTime数据类型中存储日期和时间数据。我最近意识到DateTimeOffset.NET 和 SQL Server 中存在这些类型。

该DateTimeOffset类型现在是否应该成为我使用和存储时间的默认数据类型?

如果没有,我什么时候会使用一个?

小智 5

约会时间

好吧,就我而言,我使用 Datetime 因为它更容易,而且自从我开始编程以来我一直在使用它。

  • 仅处理日期
  • 只使用时间
  • 处理抽象日期和时间
  • 处理缺少时区信息的日期和时间
  • 仅使用 UTC 日期和时间
  • 从 .NET 之外的来源(例如 SQL 数据库)检索日期和时间信息。通常,这些源以与 DateTime 结构兼容的简单格式存储日期和时间信息

  • 执行日期和时间算术,但关注一般结果。例如,在将特定日期和时间增加六个月的加法运算中,结果是否针对夏令时进行调整通常并不重要

日期时间偏移

DateTimeOffset 结构表示日期和时间值,以及指示该值与 UTC 相差多少的偏移量。因此,该值始终明确标识单个时间点。

DateTimeOffset 类型包括 DateTime 类型的所有功能以及时区感知。这使其适用于执行以下操作的应用程序:

  • 唯一且明确地标识单个时间点。DateTimeOffset 类型可用于明确定义“现在”的含义、记录事务时间、记录系统或应用程序事件的时间以及记录文件创建和修改时间

  • 执行一般日期和时间算术

  • 保留多个相关时间,只要这些时间存储为两个单独的值或结构的两个成员

使用适合您需要的任何一种。就我而言,我一直在使用 DateTime,它根本没有给我带来任何问题,但是如果您喜欢使用 OffsetDateTime。