我现在有个表里面的数据笔数很多,这个表中有个字段比如叫htdate是放的时间
我现在想统计TO_DAYS('2011-02-22') - TO_DAYS(htdate) > 30 的笔数
在关联了几个表后where后面加上这个条件TO_DAYS('2011-02-22') - TO_DAYS(htdate) > 30 发现跑的很慢请教大家有没有什么比较好的写法?

解决方案 »

  1.   

    数据库是存储数据的,尽量不要在sql语句使用函数,而应该在程序里计算
      

  2.   

    上百万的记录 如果能在sql语句里过滤掉那最好了
    如果都取出来在程序里计算的话 结果集里也要做上百万次的循环
      

  3.   

    TO_DAYS('2011-02-22') - TO_DAYS(htdate) > 30 这样会导致查询中没有索引可以利用。相同功能可以考虑换成where htdate<'2011-02-22' - interval 30 day