• 首  页
  • 最新公告
  • 域名帮助
  • 空间帮助
  • 主机帮助
  • 邮局帮助
  • 数据库帮助
  • 网站建设帮助
  • 财务帮助
  • CDN加速
  • 最新公告
  • 域名帮助
  • 空间帮助
    • VPS主机
    • 虚拟主机
  • 主机帮助
    • win服务器应用及安全
    • linux服务器应用及安全
  • 邮局帮助
  • 数据库帮助
    • MSSQL数据库
    • ORACLE数据库
    • ACCESS数据库
    • MYSQL数据库
    • 数据库基础与原理
  • 网站建设帮助
    • Html语言教程
    • ASP语言程序
    • PHP语言程序
    • DIV+CSS语言程序
    • SEO优化教程
    • JAVA语言程序
  • 财务帮助
  • CDN加速
千喜网络 ---数据库帮助 ---MSSQL数据库
SQL Server 2008中的新日期数据类型
发布时间:2012-12-2 14:26:53   阅读次数:

你是否曾经想在数据库中存储一个日期而没有时间部分,或者想存储一个时间值希望有更高的精度?在SQL Server 2008的介绍中,微软介绍了一些新的日期数据类允许你只存储一个日期、更高精度的时间值等。这些新的数据类型为你存储日期和时间相关信息提供了一些附加选项。在本篇文章中,我将介绍这些新的日期数据类型以及与旧版本的SQL Server中现有的数据类型进行比较。

回顾旧的日期数据类型

在我们开始讨论SQL Server 2008中新的日期数据类型之前,先来回顾一下SQL Server 2005中以及更老版本中提供的两种日期数据类型,这些旧的数据类型是DATETIME和SMALLDATETIME,这两个数据类型在SQL Server 2008中仍然可以使用。

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

这两种有限的日期格式限制了你在存储更早日期以及更高精度的时间时的选择,它们的不足之处使得难以从其它支持不同日期和时间范围的数据结构进行数据迁移,与SQL Server 2008中新的日期数据类型相比,在存储日期和时间时有了更多的选择。

DATITIME2

DATETIME2数据类型是对DATETIME数据类型的一个扩展,该新的数据类型扩展了可以接受日期的范围和在日期/时间值的时间部分添加附加精度。DATETIME2列支持日期从0001-01-01到9999-01-01。扩大的日期范围现在允许你存储更早的日期而无需使用一些创造性的编码算法。

DATETIME2中的时间部分的精确度依赖于你如何定义DATETIME2列,时间部分能够存储一个只有小时、分钟和秒的时间值,或者它能够支持在不同的精确定存储微秒,最多有7位小数,微妙可以向下精确到100纳秒。

使用DATETIME2数据类型你可以使用不同的长度字符存储和显示日期,从19(YYYY-MM-DD hh:mm:ss)到27(YYYY-MM-DD hh:mm:ss.0000000)。这依赖于不同数量的精度存储需要一定的磁盘开销。在DATETIME2列中存储不同的精度时需要在定义列时指定一个长度,我们可以像DATETIME2(X)来指定精度,其中X代表的是精度长度,可以从0到7。显示长度和存储空间的关系如下表所示:

图1

正如上表所示,DATETIME2列存储一个日期/时间值的磁盘空间开销是从6-8字节,它取决于你想要保留多少时间精度。

DATETIME2(3)格式等同于我们在旧版本的SQL Server中使用的DATETIME格式,但是使用DATETIME2(3)可以支持精确度到1毫秒,而旧版本中的DATETIME格式只能精确到3.33毫秒。注意DATETIME2(3)只需要7字节的磁盘开销,而DATETIME格式需要8个字节,现在,这意味着你可以存储与较早发布的SQL Server相同的日期和时间值并且能够节省磁盘空间。

使用DATETIME(7)格式允许你存储日期类型向上精确到100纳秒,尽管增加了精度,但是你不能保证在一张表中的一个时间值是唯一的,当使用DATETIME(7)格式时仍然可能在同一张表中存储两条具有相同时间的不同的记录。

网站关键词:千喜网络 云主机租用 服务器托管 CDN加速 虚拟主机 网站空间 域名注册 企业邮局 数据库
上一章:SQL SERVER数据库表主键设计   下一章:利用RDA实现SQL CE与桌面SQL Server数据库间的数据存取   
中华人民共和国增值电信业务经营许可证:陕B2-20100043
地址:西安市莲湖路37号省外贸大楼623室 全国统一服务热线:400-600-7112
CopyRight@2009-2012 Qianxinet.com 版权所有 西安千喜网络科技有限公司