1. 程式人生 > >關於SQL Server的日期時間資料型別

關於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