WHERE
        1=1  
        AND (
            (
                i.invoice_draw_time >= TO_DATE ('2012-11-08 00:00:00' , 'yyyy-mm-dd hh24:mi:ss')  
                AND i.invoice_draw_time <= TO_DATE ('2012-11-08 23:59:59' , 'yyyy-mm-dd hh24:mi:ss')
            )   
            OR (
                invoice_draw_date >= TO_DATE ('2012-11-08 00:00:00' , 'yyyy-mm-dd hh24:mi:ss')    
                AND invoice_draw_date <= TO_DATE ('2012-11-08 23:59:59' , 'yyyy-mm-dd hh24:mi:ss')
            )
        ) 

解决方案 »

  1.   

    WHERE
            1=1  
            AND (
                (
                    i.invoice_draw_time >= TO_DATE ('2012-11-08 00:00:00' , 'yyyy-mm-dd hh24:mi:ss')  
                    AND i.invoice_draw_time <= TO_DATE ('2012-11-08 23:59:59' , 'yyyy-mm-dd hh24:mi:ss')
                )   
    union all
    where
                    invoice_draw_date >= TO_DATE ('2012-11-08 00:00:00' , 'yyyy-mm-dd hh24:mi:ss')    
                    AND invoice_draw_date <= TO_DATE ('2012-11-08 23:59:59' , 'yyyy-mm-dd hh24:mi:ss')
                )
            ) 
      

  2.   

    这样做改代码的工作量非常大,应为sql句子是java代码自动生成的,里面有很多业务逻辑
      

  3.   

    用union ,or的两部分分开用
      

  4.   

    如果是两个表用union all。一个表union