日期处理疑难解答:

 原因:

判断上述低效的依据主要是数据的扫描的方式,当查询的表上没有任何索引的情况下,对于数据的查询是全表扫描,上述条件没有任何问题

但是查询的日期字段上有索引时,上述查询一般会降低查询效率,因为上述事例中的查询,或多或少都在查询字段上作了计算,这就意味着

必须对每条纪律的查询字段作计算。并判断就算结果得值是否与条件匹配,从而确定是否满足条件,如果通过索引查询的话,最坏的情况是

全部纪录满足查询条件,这种情况下数据检索时间是索引的时间加表的检索时间。这和显然别直接检索表的时间开销还大。

 


上述结果是如何处理的:
  在sql server的处理中,日期和字符串是要求使用字符串边界符(默认为单引号')可以通过set
  quoted_identified选择重新设置)作为日期数据的标识符,2005-3-11没有使用边界符,那么
  sqlserver将作为一个表达式处理,很显然作为表达式处理,结果为1991.
  sqlserver以1900年1月1日作为基础日期,1905-06-15 00:00:00.000就是自1900年1月1日
  之后的1991天。

转载于:https://www.cnblogs.com/wequst/archive/2008/09/12/1290013.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值