当前位置: 代码迷 >> Sql Server >> sql数据库查询的目录
  详细解决方案

sql数据库查询的目录

热度:28   发布时间:2016-04-24 09:06:38.0
sql数据库查询的索引
我有一张表 假设有字段 id,price,AddTime,

现在我想查这个月的price总和,还有上个月的price总和,或者去年某个月份的总和。

由于数据很多,我是不是应该给AddTime建立一个索引?(dateTime类型)

我现在知道的是比如

select * from A where AddTime between '2001-02-03' and '2002-03-03' 
或者 AddTIme='' 这样设置查询条件的时候 AddTime这个索引是有效的。

但是我用的是
select * from A where CONVERT(char(6),i.AddTime,112)= '200506' 这样的形式的,
我想问,这个是有AddTime这个索引是不是无效了...

在这种情况下我该怎么做才能提高查询的速度...我需要的是 查询某年的某个月份。

我现在想的就是 把传进来的日期比如201506,把它改装成两个 2015-06-01 00:00:00 和 2015-06-30 23:59:59,然后用between 
但是我觉得拆来拆去好恶心的说,我里面本来就很冗余了。
------解决思路----------------------
AddTime between '2001-02-03' and '2002-03-03'  这个方式 在你的数据的上下文中应该是会走索引的

CONVERT(char(6),i.AddTime,112)= '200506' 这个列进行计算了,在任何数据的上下文中不会走索引

该拆就拆吧,不过,对于时间范围,你应该改下习惯,万一精确到3又3分之毫秒呢
AddTime >= '2015-06-01' and AddTime < '2015-07-01' 
  相关解决方案