关于SQL Server的日期时间数据类型

SQL Server 2008 各种DateTime的取值范围(原文)

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

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

你可能感兴趣的:(C++,数据库)