设为首页 - 加入收藏 PHP编程网 - PHP站长网 (http://www.52php.cn)- 电商,百科,编程,业界,移动互联,5G,云计算,站长网!
热搜: 娱乐 站长之家 服务 百度
当前位置: 首页 > 教程 > 正文

SQL Server 2008中新的日期时间数据类型

发布时间:2016-01-21 18:35 所属栏目:[教程] 来源:互联网
导读:SQL Server 2008 终于发布新版了,虽然还只是另一个社区测试版而非完全版。每当新软件发布,大 家最关系的问得最多的问题就是:有些什么新特性?SQL Server 2008
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。

【免责声明】本站内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。

推荐文章
热点阅读