datetime、datetime2的區別

happymagic發表於2015-04-15
SQL Server 2008 中新的日期時間型別:datetime2和datetimeoffset資料型別。

Datetime:

       時間格式,對應於資料庫中的DateTime型別,對應於.NET裡面的System. DateTime型別。DateTime支援日期從1753年1月1日到9999年12月31日,時間部分的精確度是3.33毫秒,它需要8位元組的儲存空間。

Datetime2:

      時間格式,就Sql Server 2008 裡面新增的欄位型別。對應於資料庫中的DateTime2格式,對應於.NET裡面的System. DateTime型別。DateTime2則支援從0001年01月01日到9999年12月31日,時間部分的精度是100納秒,佔用6到8位元組的儲存空間,取決於儲存的精度。


datetime2資料型別,類似於之前的datetime型別,不過其精度比較高,可以精確到小數點後面7位(100ns),其使用語法為:datetime2(n)。使用示例:

declare @dt as datetime2(5)
set @dt = getdate()
select @dt

datetimeoffset資料型別,加入了時區偏移量部分,時區偏移量表示為 [+|-] HH:MM。 HH 是範圍從 00 到 14 的 2 位數,表示時區偏移量的小時數。 MM 是範圍從 00 到 59 的 2 位數,表示時區偏移量的附加分鐘數。 時間格式支援到最小 100 毫微秒。 必需的 + 或 - 符號指示在 UTC(通用協調時間或格林尼治標準時間)中是加上還是減去時區偏移量以獲取本地時間。使用示例:

declare @dt as datetimeoffset(8)
set @dt = '2008-08-08 08:08:08.0 +8:00'
select @dt

和CLR資料型別之間的對映關係:

SQL 資料型別 .NET Framework 型別 System.Data.SqlDbType System.Data.DbType
date System.DateTime Date Date
time System.TimeSpan Time Time
datetime2 System.DateTime DateTime2 DateTime2
datetimeoffset System.DateTimeOffset DateTimeOffset DateTimeOffset
datetime System.DateTime DateTime DateTime
smalldatetime System.DateTime DateTime

DateTime

相關文章