(续前)SQLServer常见问题应对

server|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 子句一样。

时间: 2024-08-05 21:38:38

(续前)SQLServer常见问题应对的相关文章

SQLServer常见问题应对

server|sqlserver|问题 SQLServer常见问题应对 版权所有ashuixu转载请保持完整并注明出处 SQL语句部分 1.SQL语句跨两个以上的数据库 问题:有时某个SQL语句需要使用两个以上的数据库,这样的SQL语句怎么写呢? 解答:采用DataBaseName..TableName来访问表就可以了. 举例: 2.匹配查询 问题:我要实现字符串的匹配查询,该怎么做呢? 解答:用like,请参见SQLServer2000的联机帮助.在索引中输入"like",内有非常详

PE难续卡内基式神话资源行业将是明年整合热点

PE整合作用有限 21世纪:中国产业经过20多年的发展现在进入了一个转型的重要时刻.在产业整合和升级过程中,越来越多私募股权投资参与到其中,您觉得在2008年这种趋势会怎么演变?它是否会成为中国产业整合的一种重要方式呢? 方方:就当前而言,境内外PE 尚不能主导中国产业整合,只扮演资金辅助及催化剂的角色.PE大规模主导中国产业整合的时机还尚未成熟. 曾经有人提出,国资委可以考虑把自己作为PE来充分运作,行使出资人追求投资效益最大化权力,从而成为中国最大的产业整合者,如果这种说法成立的话,国资委必

宏碁首次超过戴尔:欲2年内进入中国市场前三

超越戴尔 宏碁"移动"中国 本报记者 黄婕 北京报道 对于PC业巨头宏碁来说,刚刚过去的第三财季是个值得庆祝的季节. 宏碁首次超过戴尔,成为继惠普之后的全球第二大PC厂商.据Gartner 发布的报告显示,戴尔第三季度出货量同比下滑6.7%,至1030万台,而宏碁出货量同比上涨23.6%,至1250万台. 此前,宏碁在全球PC市场屈居第四,并且一直在与联想争夺全球市场第三的位置.但在这场经济危机之中,宏碁不仅超越了联想,还越过了戴尔. 不过,与全球特别是欧洲地区的骄人业绩相比,宏碁中国

[历朝通俗演义-蔡东藩-前汉]第001回 移花接木计献美姬 用李代桃欢承淫后

皇有皇猷,帝有帝德,史家推论史事,首推三皇五帝.其实三皇五帝的本身,并未尝自称为皇,自称为帝,后人因他首出御宇,创造文明,把一个浑浑沌沌的世界,化成了雍雍肃肃的国家,真是皇猷丕显,帝德无垠,所以格外推崇,因把皇字帝字的徽号,加将上去.是意未经人道,一经揭破,恰有至理.到了夏商周三朝,若大禹,若成汤,若周文武,统是有道明君,他却恐未及古人,不敢称皇道帝,但降号为王罢了.及东周已衰,西秦崛起,暴如嬴政,凭借了祖宗遗业,招揽关陇间数十百万壮丁,横行海内,蚕食鲸吞,今日灭这国,明日灭那国,好容易把九州版

网络论坛的危机公关行动方案

续前<社会心理学与网络http://www.aliyun.com/zixun/aggregation/10416.html">危机公关>,现在分析其具体的行动方案: 一.帖子的性质分析: 1.主题类型和关注度:A.消费投诉:B.消费咨询:C.就业咨询:D.公司管理:E.其他 2.标题的刺激性:是否标题起的很具有煽动性和刺激性,很吸引人去看. 3.内容是具名还是匿名? 4.内容是否有明确的指向性? 5.内容是否有权威性的背景?例如报纸报道的转载. 6.内容反映的是个别的问题,还是

Beginner with C#

1 绪论 c# 是一种简练,时髦(?),面向对象(object oriented),类型可靠(type-safe)的 编程语言.它(发音:C sharp)是从c/c++发展而来的(?俺觉得更象是java),和c/c++ 是一个语系.所以,很容易被c/c++的程序员接受.c#的目标是结合Visual Basic的高产和 C++质朴的力量. c#将会是vs7的一分子.vs7还支持vb,vc和标记语言--VBScript和JScript.所有这些语言 都会在Next Generation Window

Word入门动画教程55:设置页码格式

一.修改页码格式 1.执行"插入"→"页码",在"页码"对话框中单击"格式"按钮,打开"页码格式"对话框,在"数字格式"下拉列表框中可选择插入页码的数字格式. 2.在"页码编排"内,如果一个文档分为几个节,为使整个文档的页码连续,可选中"续前节"单选框,如果需要页码从某个数字开始编排,可选中"起始页码"单选框,然后在其后的文本框

浅析.NET类型转换的四种方法

.NET类型转型的四种做法: ◆ 强制转型:(int)变量名称 ◆ int.Parse(字符串变量名称) ◆ Convert.To类型(变量名称) ◆ TryParse 强制转型 (casting) ◆ 浮点数会做无条件舍去,失去精确度 ◆ 可处理 object 转 int,但遇到 object 为 null 时会产生 error ◆ 某些情况下,如 object 转型成 int,有时正常,但有时会无故发生 error,原因不明 ◆ 无法处理 string 转 int (程序中常会用到的功能)

写毕业论文的注意了:怎样自动生成目录及从任意页开

微软WORD这个软件大家都很熟悉,但有不少功能我们并没有用到,其中不乏非常实用的.今儿个我给大家介绍一下如何用WORD自动生成目录.这对那些用WORD写书,写论文的朋友很有帮助. 优点:用 WORD根据文章的章节自动生成目录不但快捷,而且阅读查找内容时也很方便,只是按住Ctrl点击目录中的某一章节就会直接跳转到该页,更重要的是便于今 后修改,因为写完的文章难免多次修改,增加或删减内容.倘若用手工给目录标页,中间内容一改,后面页码全要改是一件很让人头痛的事情.应该自动生成的目 录,你可以任意修改文