jhrq 是 date类型,数据库里的纪录都是日期 时间格式的,查询的时候只需要使用到年月日格式,请问查询某一日期以前的所有纪录的SQL语句是怎样的(例如查询jhrq在 2008-12-25 以前的所有纪录),还有设置索引的时候,jhrq作为索引的条件(也是只需要年月日格式),请问这样的索引怎么创建?

解决方案 »

  1.   

    在sql server 中如下处理:
    select * from 表 where convert(char(10),jhrq,112)>='2008-12-25'
    对于日期字段,可以建立聚集索引!
      

  2.   

    select * from tblname where jhrq < to_date('2008-12-26', 'yyyy-mm-dd');
      

  3.   

    select * from tblname where to_char(jhrq ,'yyyy-mm-dd') < '2008-12-26';
    用to_char效率会高些
      

  4.   

    直接在jhrq上建立索引就好
    如果你喜欢对时间TO_CHAR(),那就要建函数索引~
    建立普通索引:create index in_jhrq on yourtable(jhrq)
      

  5.   

    我是用 oracle 数据库的
      

  6.   

    3楼的用to_char会使索引失效select * from tblname where to_char(jhrq ,'yyyy-mm-dd') < '2008-12-26';
     
    2楼的sql就行
      

  7.   

    我刚才google下,发现有个人播客也说,to_date()效率高,难道我记错了,高人出来说下