SQL Server 2008中新的日期时间数据类型
2008-04-02 11:01:10来源:互联网 阅读 ()
【IT专家网独家】SQL Server 2008 终于发布新版了,虽然还只是另一个社区测试版而非完全版。每当新软件发布,大家最关系的问得最多的问题就是:有些什么新特性?SQL Server 2008有很多新功能和新工具。但是,本文还是主要为大家介绍SQL Server 2008七月预览版引入的新数据类型,并对DATETIME数据类型的功能进行专门讨论。
SQL Server 2008中DATETIME功能的最大转变就是引入了四种DATETIME数据类型,分别为DATE、TIME、DATETIMEOFFSET和DATETIME2;此外还增加了新的DATETIME函数功能。
下面首先来讨论一下四种新数据类型的功能和用法。
DATE数据类型
在SQL Server 2005中,没有专门只用来存储日期(不包括时间)的特定数据类型,只能使用DATETIME或SMALLDATETIME数据类型来完成此操作。但是,当您输入日期之后,会显示更有一个时间的组分需要输入,其初始显示为12:00 AM。假如只想在输出结果中显示日期那一部分,就必须修改输出格式。大部分情况下,能够使用getdate()函数来存储当前日期。要在SQL Server 2005中的SMALLDATETIME或DATETIME列中保存getdate()的函数值,同时也会保存了当前的时间,而这可能会引发很多问题。举例而言,假如您使用以下的语句,想根据给定的日期来搜索记录:
SELECT * FROM tblDate Where [Date] = '2007-12-01'
由于Date列里含有时间组分,这个命令将无法正常执行, 因此,您必须执行以下的查询操作:
SELECT * FROM tblDate Where datediff(d,[Date],‘2007-12-01’) =0
尽管上面的查询操作能够行得通,但是Date列中符合需要的索引很可能不会被使用。但是您还是能够使用上面的查询操作调出少量的记录。虽然能够利用工作区,但很明显有必要增加一种去掉时间值的DATE数据类型来减少潜在的错误。来看看以下的语法:
DECLARE @dt as DATE SET @dt = getdate() PRINT @dt |
以上脚本的输出结果只有日期,不包括时间部分。DATE数据类型的取值范围从0001-01-01到9999-12-31。
TIME数据类型
就像日期数据类型相同,假如您只想存储时间数据而无需日期部分就能够利用TIME数据类型。下面就是利用TIME数据类型进行查询的例子:
DECLARE @dt as TIME SET @dt = getdate() PRINT @dt |
以上脚本输出结果只包含时间部分,其取值范围从00:00:00.0000000到23:59:59.9999999。
DATETIME2数据类型
新的DATETIME2数据类型也是一种数据时间混合的数据类型,但是其时间部分秒数的小数部分能够保留不同位数的值,比原来的DATETIME数据类型取值范围要广。用户能够根据自己的需要通过配置不同的参数来,设定小数位数,最高能够设到小数点后七位(参数为7),也能够不要小数部分(参数为0),以此类推。以下是利用DATETIME2的查询语句:
DECLARE @dt7 datetime2(7) --result is 2008-01-3 12:15:11.2340000 |
该语句的输出结果中时间的秒数部分精确到小数点后第七位。具体参考如下:
Fraction |
Output |
0 标签: 版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 上一篇: SQL Server存储过程命名标准 下一篇: 简单统计SQLServer用户数据表大小
相关文章
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设 网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源 网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它 服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护 软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷 网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash 热门词条
最新资讯
热门关注
热门标签
|