中国IT动力,最新最全的IT技术教程
最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档
首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 硬件维护 | 未整理篇 | 站长教程
ASP JS PHP工程 ASP.NET 网站建设 UML J2EESUN .NET VC VB VFP 网络维护 数据库 DB2 SQL2000 Oracle Mysql
服务器 Win2000 Office C DreamWeaver FireWorks Flash PhotoShop 上网宝典 CorelDraw 协议大全 网络安全 微软认证
硬件维护  CPU  主板  硬盘  内存  显卡  显示器  键盘鼠标  声卡音箱  打印机  机箱电源  BIOS  网卡  C#  Java  Delphi  vs.net2005
  当前位置:> 程序开发 > 数据库开发 > 数据库综合
(续前)SQLServer常见问题应对
作者:未知 时间:2005-07-27 23:38 出处:CSDN 责编:chinaitpower
              摘要:(续前)SQLServer常见问题应对

(续前)SQLServer常见问题应对

版权所有©ashuixu转载请保持完整并注明出处

SQL语句部分

5、“令人头疼”的日期处理

问题:你是否也有过面对日期处理时的彷徨无措么?

解答:你是否了解以下事实(摘选自SQLServer2000联机帮助-datetime 数据类型:概述):

A.日期的存储。

datetime

1753 年 1 月 1 日到 9999 年 12 月 31 日的日期和时间数据,精确度为百分之三秒(等于 3.33 毫秒或 0.00333 秒)。如下表所示,把值调整到 .000、.003、或 .007 秒的增量。

smalldatetime

1900 年 1 月 1 日到 2079 年 6 月 6 日的日期和时间数据精确到分钟。29.998 秒或更低的 smalldatetime 值向下舍入为最接近的分钟,29.999 秒或更高的 smalldatetime 值向上舍入为最接近的分钟。

Microsoft SQL Server 用两个 4 字节的整数内部存储 datetime 数据类型的值。第一个 4 字节存储 base date(即 1900 年 1 月 1 日)之前或之后的天数。基础日期是系统参考日期。不允许早于 1753 年 1 月 1 日的 datetime 值。另外一个 4 字节存储以午夜后毫秒数所代表的每天的时间。

smalldatetime 数据类型存储日期和每天的时间,但精确度低于 datetime。SQL Server 将 smalldatetime 的值存储为两个 2 字节的整数。第一个 2 字节存储 1900 年 1 月 1 日后的天数。另外一个 2 字节存储午夜后的分钟数。日期范围从1900 年 1 月 1 日到 2079 年 6 月 6 日,精确到分钟。

B.没有只存储时间或日期的独立的时间和日期数据类型。当设置 datetime 或 smalldatetime 值时,如果只指定时间,则日期默认为 1900 年 1 月 1 日。如果只指定日期,则时间默认为 12:00 AM(午夜)。

C.下面是一些使用日期和时间数据的准则:

· 若要对日期和时间进行精确搜索匹配,请使用等号(=)。Microsoft SQL Server 以 12:00:00:000 AM(默认值)的精确时间形式返回年、月、日都完全匹配的日期和时间值。

· 若要搜寻日期或时间的一部分,请使用 LIKE 运算符。SQL Server 首先把数据转换为 datetime 格式然后再转换为 varchar 格式。由于标准时间显示格式不包括秒和毫秒,不能使用 LIKE 和匹配模式对其搜索,除非使用 CONVERT 函数并把 style 参数设为 9 或 109。有关部分日期和时间搜索的更多信息,请参见 LIKE。

· SQL Server 在运行时计算 datetime 常量。用于某种语言期望的日期格式的日期字符串,如果由使用不同语言和日期格式设置的连接来执行查询,则可能无法识别。例如,下面的视图对于语言设置为美国英语的连接可以工作正常,但对于其它语言设置的连接就不能工作正常:

    CREATE VIEW USA_Dates AS

    SELECT *

    FROM Northwind.dbo.Orders

    WHERE OrderDate < 'May 1, 1997'

当在查询中使用 datetime 常量,而且该查询由使用不同语言设置的连接执行时,需确保日期对于所有语言设置均是可以接受的。对于国际数据库中永久对象中的 datetime 常量,比如表约束和查看 WHERE 子句,必须同样小心。有关所有语言设置都解释为相同的日期格式的更多信息,请参见编写国际 Transact-SQL 语句。

SQL Server 可以识别以下列格式括在单引号 (') 中的日期和时间:

· 字母日期格式(例如,'April 15, 1998')

· 数字日期格式(例如,'4/15/1998'、'April 15,1998')

· 未分隔的字符串格式(例如'19981207'、'December 12, 1998')  

6、设计期无法确定的SQL语句

问题:在写存储过程时,有些SQL语句在设计期是不确定的,这样的SQL语句怎么写呢?

解答:用系统存储过程sp_executesql。

7、常用且重要函数、关键字和子句

A.CASE - 计算条件列表并返回多个可能结果表达式之一

B.ISNULL - 使用指定的替换值替换 NULL

C.HAVING 子句 - 指定组或聚合的搜索条件。HAVING 通常与 GROUP BY 子句一起使用。如果不使用 GROUP BY 子句,HAVING 的行为与 WHERE 子句一样。


关闭本页
 
首页 | 投资与合作 | 服务条款 | 隐私政策 | 收藏本站 | 设为首页 | 新用户注册 | 免责声明 | 使用帮助
Copyright ©2005-2008 chinaitpower.com All rights reserved. www.chinaitpower.com 版权所有