.NET& SQL Server - Datetime还是DateTimeOffset?

时间:2017-09-29 02:07:57

标签: c# .net sql-server datetime datetimeoffset

只要我一直在使用.NET,我就一直在.NET&中存储日期和时间数据。 SQL Server DateTime数据类型。我最近意识到.NET和Linux中存在DateTimeOffset类型。 SQL Server。

DateTimeOffset类型现在应该成为我的默认数据类型,用于处理日期和存储日期吗?

如果没有,我何时会使用另一个?

1 个答案:

答案 0 :(得分:3)

<强>日期时间

在我的情况下,我使用Datetime因为它更容易,并且自从我开始编程以来我一直在使用它。

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

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

<强> DateTimeOffest

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

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

  • 独特且明确地识别单个时间点。 DateTimeOffset类型可用于明确定义“now”的含义,记录事务时间,记录系统或应用程序事件的时间,以及记录文件创建和修改时间

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

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

使用适合您的需求。在我的情况下,我一直在使用DateTime,它根本没有给我一个问题但是如果你喜欢去OffsetDateTime那么。