Sql server SQL Server上UTC的datetimeoffset与datetime2

Sql server SQL Server上UTC的datetimeoffset与datetime2,sql-server,datetime,utc,datetimeoffset,Sql Server,Datetime,Utc,Datetimeoffset,与datetime2相比,在datetimeoffset字段中存储UTC时间戳有什么好处吗?看起来他们基本上是一样的 +------------------------------------+-----------------------------+ | datetimeoffset | datetime2 | |------------------------------------+---------------

与datetime2相比,在datetimeoffset字段中存储UTC时间戳有什么好处吗?看起来他们基本上是一样的

+------------------------------------+-----------------------------+
| datetimeoffset                     | datetime2                   |
|------------------------------------+-----------------------------|
| 2021-02-12 16:48:11.0677934 +00:00 | 2021-02-12 16:48:11.0677934 |
+------------------------------------+-----------------------------+

datetimeoffset
数据类型将允许在同一时间的不同偏移之间进行比较。e、 g:

SELECT 'equal'
WHERE
    CAST('2021-02-12 15:48:11.0677934 -01:00' AS datetimeoffset) = CAST('2021-02-12 16:48:11.0677934 +00:00' AS datetimeoffset).

如果仅存储UTC值(偏移量始终为零),则可以使用节省存储空间。需要10个字节的存储空间,而
datetime
需要8个字节用于精度为5或更高的存储空间,7个字节用于精度为3-4的存储空间,6个字节用于精度为2或更低的存储空间。

A
datetime2
具有相同精度的存储空间将更小。如果您不打算存储UTC以外的任何内容,请使用
datetime2
。Datetime offset将允许在同一时间的不同偏移之间进行比较。e、 g.
CAST('2021-02-12 15:48:11.0677934-01:00'作为日期时间偏移量)=CAST('2021-02-12 16:48:11.0677934+00:00'作为日期时间偏移量)