關於SQL Server的日期時間資料型別
SQL Server 2008除了DateTime和SmallDateTime之外,又新增了四種時間型別,分別為:date,time,datetime2和datetimeoffset。
各時間類型範圍、精度一覽表:
資料型別 |
時間範圍 |
精度 |
datetime |
1753-01-01 到 9999-12-31 00:00:00 到 23:59:59.997 |
3.33毫秒 |
smalldatetime |
1900-01-01 到 2079-06-06 00:00:00 到 23:59:59 |
分鐘 |
date |
0001-01-01 到 9999-12-31 |
天 |
time |
00:00:00.0000000 到 23:59:59.9999999 |
100納秒 |
datetime2 |
0001-01-01 到 9999-12-31 00:00:00 到 23:59:59.9999999 |
100 納秒 |
datetimeoffset |
0001-01-01 到 9999-12-31 00:00:00 到 23:59:59.9999999 -14:00 到 +14:00 |
100 納秒 |
各時間型別表示式一覽表:
資料型別 |
輸出 |
time |
12:35:29.1234567 |
date |
2007-05-08 |
smalldatetime |
2007-05-08 12:35:00 |
datetime |
2007-05-08 12:35:29.123 |
datetime2 |
2007-05-08 12:35:29.1234567 |
datetimeoffset |
2007-05-08 12:35:29.1234567 +12:15 |
Datetime資料型別之datetime2和datetimeoffset資料型別 (原文)
SQL Server 2008 中新的日期時間型別:datetime2和datetimeoffset資料型別。
datetime2資料型別,類似於之前的datetime型別,不過其精度比較高,可以精確到小數點後面7位(100ns),其使用語法為:datetime2(n)。使用示例:
declare @dt
as datetime2(5)
set @dt = getdate()
select @dt
- 1
- 2
- 3
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
- 1
- 2
- 3
和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 |