SQL Server 2005的DATETIME和SMALLDATETIME基础(一)

2009-1-15    | |
打印本文章
RSS

导读:在本文中,我将介绍SQL Server中的两种基本的日期/时间数据类型——DATETIME和SMALLDATETIME,以及数据是如何在这两种类型中存储的。另外,作者还将介绍概括介绍TIMESTAMP数据类型。

关键词:SQL Server 2005 DATETIME SMALLDATETIME

正在加载数据... 【TechTarget中国原创】理解SQL Server的日期/时间数据类型是有一定难度的,尤其是混合使用TIMESTAMP的时候。在关于日期/时间的这一系列的第一部分,你将了解到关于数据是如何存储在DATETIME和SMALLDATETIME的基础知识,以及大致地了解TIMESTAMP数据类型——它经常与两种主要的日期/时间数据类型相混淆。

【TechTarget中国原创】理解SQL Server的日期/时间数据类型是有一定难度的,尤其是混合使用TIMESTAMP的时候。在关于日期/时间的这一系列的第一部分,你将了解到关于数据是如何存储在DATETIME和SMALLDATETIME的基础知识,以及大致地了解TIMESTAMP数据类型——它经常与两种主要的日期/时间数据类型相混淆。

  在SQL Server 2005使用日期/时间值有时候会很混淆。因为日期/时间数据类型同时存储日期和时间值,而这些值的操作并不总是一个简单的过程,或者看起来不简单的。

  当操作这类数据时,对于这些数据类型有一个基本的了解是很有重要的。在本文中,我将介绍SQL Server中的两种基本的日期/时间数据类型——DATETIME和SMALLDATETIME,以及数据是如何在这两种类型中存储的。另外,我还将概括介绍TIMESTAMP数据类型,这样你就可以了解到它与两种日期/时间数据类型的不同。

  SQL Server的DATETIME数据类型

  毫无疑问,DATETIEM数据类型对你的应用是最有用的。DATETIME字段(或一个变量)中的值是以两个4位整型存储的。第一个整型表示日期,而第二个整型表示时间。

  我们是从基准日期1900年1月1日开始的计算日期的整数的。整数表示该日期之前或之后的天数。因此,DATETIME数据类型仅仅支持由4位范围整数表示的日期。这就意味着DATETIME字段的一个日期必须处于1735年1月1日到9999年12月31日之间。

  第二个在DATETIME值的整数,即时间整数,存储了午夜后的1/300-秒单位的数字。这就意味着时间是以毫秒为单位存储的,并精确到3.33毫秒。因此,当你在DATETIME字段中插入一个值,SQL Server将把时间转换成.000、.003或.007秒。下面的表显示了SQL Server是圆整时间值的几个例子:

Time example

Rounded to:

10:10:10.989
10:10:10.990
10:10:10.991

10:10:10.990

10:10:10.992
10:10:10.993
10:10:10.994

10:10:10.993

10:10:10.995
10:10:10.996
10:10:10.997
10:10:10.998

10:10:10.997

10:10:10.999

10:10:11.000

 这个表的时间是以小时、分钟、秒钟顺序列出的,并且适当地将秒精确到毫秒。

  正如你所看到的,DATETIME字段中的两个整数一起表示一个特定日期的某一特定时间。当你从一个DATETIME字段中检索一个值时,它将日期和时间显示为一系列的数字。比如,下面的Transact-SQL 语句就是从DatabaseLog 表中的PostTime字段检索数据,这个表也是AdventureWorks示例数据库中的一部分:


SELECT PostTime FROM dbo.DatabaseLog
WHERE DatabaseLogID = 1

  PostTime字段是配置为DATETIME数据类型的。当你在SQL Server Management Studio中检索值时,所检索到的值在默认情况下以下面的格式返回:


PostTime
-----------------------
2005-10-14 01:58:27.567
(1 row(s) affected)

  注意,日期显示首先是年(2005),接着是月(10),然后是日(14)。然后日期后面是时间,也就是1小时、58分和27.567秒。值作为一个整体,它所指的是2005年10月14日,大约是凌晨1:58的日期和时间。

查看全文
 
SQL Server 2008中最新的文件流功能使得你可以将实际数据存储在文件系统中,而非在数据库中。只要愿意,你仍可以作为一个常规的二进制列来查询此列。
 
事务日志里的大量虚拟日志文件影响了数据修改的整体性能。这样的话,建议主动增长事务日志,不要让它自动增长。
 
平均改进数据显示性能的增强和事务运行中事务日志增长数目有关。自动增长越少性能越佳,特别是对于整段时间而言。
 
SQL Server集成服务(SSIS)中的事件处理程序标签页非常的灵活,它支持根据你想监视的事件和你想执行的动作执行各种行为。
 
要为SSIS包创建事件处理程序,你必须首先实现该包中要包含的可执行体。可执行体可以是任何控制流任务,或者是容器,或者它可以引用该包本身。
在SQL Server中,我们如何进行索引设计来提升系统的性能和对查询进行优化,是许多用户非常关注的问题,在本次技术专题中,我们将分群集索引和非群集索引设计两部分来为您详细分析。
本技术专题主要为使用Oracle SQL Developer和其他开发工具。包括如何使用Oracle SQL Developer和其他开发工具、使用Oracle Database Home Page、在Oracle中使用SQL*Plus等方面。
本专题为QL SELECT语句基础。侧重概述了如何使用SELECT来访问SQL数据库中所有内容以及组成SELECT语句的许多子句名称和功能;同时还阐述了如何使用DISTINCT关键字消除重复的行,以及如何正确使用ORDER BY子句来排序数据。
最新更新
专家答疑
技巧
Brian Fedorko
Oracle数据库审计功能十分强大、灵活并且易于配置,适当并有效地使用数据库审计功能是拥有高效安全策略的基础。
Brian Peasland
Oracle数据库二进制文件和库文件是高版本版本的,而备份的数据库内部如果仍然是较低版本,那么Oracle将不允许你打开数据库,除非你完成了升级过程。
Maria Anderson
在Windows XP环境下,使用数据库升级助手将Oracle从9.2.0.1升级到10g R2,出现DBUA不能识别Oracle数据库的SID问题如何解决。

登录TechTarget中国

关闭
本服务仅向TechTarget中国的会员开放,请登录或立即免费注册
登录Email
请输入您的登录Email
密码
下次自动登录