sqlserver2008中的新日期数据类型

sqlserver2008中的新日期数据类型

ID:34725883

大小:117.31 KB

页数:6页

时间:2019-03-10

sqlserver2008中的新日期数据类型_第1页
sqlserver2008中的新日期数据类型_第2页
sqlserver2008中的新日期数据类型_第3页
sqlserver2008中的新日期数据类型_第4页
sqlserver2008中的新日期数据类型_第5页
资源描述:

《sqlserver2008中的新日期数据类型》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、摘要你是否曾经想在数据库中存储一个日期而没有时间部分,或者想存储一个时间值希望有更高的精度?在SQLServer2008的介绍中,微软介绍了一些新的日期数据类允许你只存储一个日期、更高精度的时间值等。这些新的数据类型为你存储日期和时间相关信息提供了一些附加选项。在本篇文章中,我将介绍这些新的日期数据类型以及与旧版本的SQLServer中现有的数据类型进行比较。回顾旧的日期数据类型在我们开始讨论SQLServer2008中新的日期数据类型之前,先来回顾一下SQLServer2005中以及更老版本中提供的两种日期数据类型,这

2、些旧的数据类型是DATETIME和SMALLDATETIME,这两个数据类型在SQLServer2008中仍然可以使用。DATETIME数据类型存储把日期和时间部分作为一个单列值在一起存储,该数据类型支持日期从1753年1月1日到9999年12月31日,时间部分的精确度是3.33毫秒,它需要8字节的存储空间。SMALLDATETIME数据类型比起DATETIME类型来说需要更少的存储空间,只有4字节,但是支持更小的日期和时间范围。SMALLDATETIME只支持日期从1900年1月1日到2079年6月6日,时间部分只能够

3、精确到分钟。这两种有限的日期格式限制了你在存储更早日期以及更高精度的时间时的选择,它们的不足之处使得难以从其它支持不同日期和时间范围的数据结构进行数据迁移,与SQLServer2008中新的日期数据类型相比,在存储日期和时间时有了更多的选择。 ----------------------------DATITIME2DATETIME2数据类型是对DATETIME数据类型的一个扩展,该新的数据类型扩展了可以接受日期的范围和在日期/时间值的时间部分添加附加精度。DATETIME2列支持日期从0001-01-01到9999-0

4、1-01。扩大的日期范围现在允许你存储更早的日期而无需使用一些创造性的编码算法。DATETIME2中的时间部分的精确度依赖于你如何定义DATETIME2列,时间部分能够存储一个只有小时、分钟和秒的时间值,或者它能够支持在不同的精确定存储微秒,最多有7位小数,微妙可以向下精确到100纳秒。使用DATETIME2数据类型你可以使用不同的长度字符存储和显示日期,从19(YYYY-MM-DDhh:mm:ss)到27(YYYY-MM-DDhh:mm:ss.0000000)。这依赖于不同数量的精度存储需要一定的磁盘开销。在DATET

5、IME2列中存储不同的精度时需要在定义列时指定一个长度,我们可以像DATETIME2(X)来指定精度,其中X代表的是精度长度,可以从0到7。显示长度和存储空间的关系如下表所示:正如上表所示,DATETIME2列存储一个日期/时间值的磁盘空间开销是从6-8字节,它取决于你想要保留多少时间精度。DATETIME2(3)格式等同于我们在旧版本的SQLServer中使用的DATETIME格式,但是使用DATETIME2(3)可以支持精确度到1毫秒,而旧版本中的DATETIME格式只能精确到3.33毫秒。注意DATETIME2(3

6、)只需要7字节的磁盘开销,而DATETIME格式需要8个字节,现在,这意味着你可以存储与较早发布的SQLServer相同的日期和时间值并且能够节省磁盘空间。使用DATETIME(7)格式允许你存储日期类型向上精确到100纳秒,尽管增加了精度,但是你不能保证在一张表中的一个时间值是唯一的,当使用DATETIME(7)格式时仍然可能在同一张表中存储两条具有相同时间的不同的记录。此处是一个如何使用DATETIME2不同的精度值来显示不同的时间格式:DECLARE@D0datetime2(0)='2008-05-1006:59:

7、11.1234567';DECLARE@D1datetime2(1)='2008-05-1006:59:11.1234567';DECLARE@D2datetime2(2)='2008-05-1006:59:11.1234567';DECLARE@D3datetime2(3)='2008-05-1006:59:11.1234567';DECLARE@D4datetime2(4)='2008-05-1006:59:11.1234567';DECLARE@D5datetime2(5)='2008-05-1006:59:11.

8、1234567';DECLARE@D6datetime2(6)='2008-05-1006:59:11.1234567';DECLARE@D7datetime2(7)='2008-05-1006:59:11.1234567';PRINT@D0;PRINT@D1;PRINT@D2;PRINT@D3;PRINT@D4;P

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。