那是指创建一个基于函数的索引,
你也可以就用你原来的那个索引,在查询时注意要不要加函数,如
WHERE ACCDATE>=to_date('2005-08-01','yyyy-mm-dd')
AND ACCDATE<to_date('2005-08-02','yyyy-mm-dd')这样就可以把索引用上了。
你也可以就用你原来的那个索引,在查询时注意要不要加函数,如
WHERE ACCDATE>=to_date('2005-08-01','yyyy-mm-dd')
AND ACCDATE<to_date('2005-08-02','yyyy-mm-dd')这样就可以把索引用上了。
那么你就个性一下日期格式的参数。alter session set nls_date_format='YYYY-MM-DD';然后在查询时: select * from tname where date=to_date('2004-09-09','YYYY-MM-DD');然后在创建索引:
create index i_date on tname(date);没有必要用函数索引了。
做成 WHERE ACCDATE>=to_date('2005-08-01','yyyy-mm-dd')
AND ACCDATE<to_date('2005-08-02','yyyy-mm-dd')
就不太通用。 njhart2003() :那是指创建一个基于函数的索引,如何建立?
2。set nls_date_format设置后ACCDATE='2005-08-01'能精确查到吗?注意ACCDATE有分秒的。
create index idx_name on tbname(to_date(col,'yyyy-mm-dd'));
update tabname set ACCDATE=trunc(ACCDATE);
然后建一个普通索引,create index idx_name on tbname(ACCDATE);
组装做成的SQL:select a,b from table where dat=to_date(:Var0,'yyyy-mm-dd') and amt=:Var1。