处理日期和时间数据--日期和时间数据类型

  在SQL Server 2008之前,SQL Server支持两种表示时间的数据类型:DATETIME和SMALLDATETIME。这两种类型都包括了日期和时间组成部分,而且这两部分是不能分开的。它们在存储需求、支持的日期范围,以及日期的精度上都有所不同。SQL Server 2008新引入了DATE、TIME、DATETIME2和DATETIMEOFFSET数据类型。DATE是单独表示日期的数据类型,TIME是单独表示时间的数据类型,DATETIME2是一种比DATETIME具有更大的日期范围和更好的精度的日期类型,DATETIMEOFFSET具有一个时区组成部分。下表列出了每种日期和时间数据类型的详细信息,包括存储大小、支持的日期范围、精确度,以及推荐的表示格式。

数据类型

存储大小(字节)

日期范围

准确度

推荐格式及示例

DATETIME

8

1753-01-01到

9999-12-31

3.33毫秒

'YYYYMMDD hh:mm:ss.nnn'

'20090212 12:30:15.123'

SMALLDATETIME

4

1900-01-01到

2079-06-06

1分钟

'YYYYMMDD hh:mm'

'20090212 12:30'

DATE

3

0001-01-01到

9999-12-31

1天

'YYYY-MM-DD'

TIME

3到5

00:00:00.0000000到23:59:59.9999999

100纳秒

'hh:mm:ss.nnnnnnn'

'12:30:15.1234567'

DATETIME2

6到8

0001-01-01 00:00:00.0000000到9999-12-31 23:59:59.9999999

100纳秒

'YYYY-MM-DD hh:mm:ss.nnnnnnn'

'2009-02-12 12:30:15.1234567'

DATETIMEOFFSET

8到10

0001-01-01 00:00:00.0000000到9999-12-31 23:59:59.9999999

100纳秒

'YYYY-MM-DD hh:mm:ss.nnnnnnn [+|-] hh:mm'

'2009-02-12 12:30:15.1234567 +02:00'

  上表中的最后三种数据类型(TIME、DATETIME2,以及DATETIMEOFFSET)的存储空间大小要依赖于所选择的精度(precision)。可以通过0到7之间的整数来指定其精度,分别代表不同小数位数的秒值的精度。例如,TIME(0)表示秒的精度只有0位小数,换句话说,只能准确到1秒。TIME(3)表示准确到1毫秒,而TIME(7)则表示准确到100纳秒。如果没有指定秒的小数部分的精度,SQL Server默认将上述三种类型的精度设置为7。

posted @ 2012-09-25 11:48  沙耶  阅读(2755)  评论(0编辑  收藏  举报