sql优化to_char 和 to_date 的使用

1. to_char 优化成to_date,把"="左边函数移到右边

优化前:

select sum(POINT) as point , to_char(p.EXPIRE_DATE,'yyyy/mm/dd') as strParam
     from MSTB_CUSTOMER p
     where p.STATUS = 1 
     and to_char(p.EXPIRE_DATE,'yyyymmdd')>=to_char(sysdate,'yyyymmdd') 

(需要优化的功能: 时间比较 , 忽略时分秒 , 只精确到日 )

优化后:

(from前面的 to_char(p.EXPIRE_DATE,'yyyy/mm/dd') 不影响效率)

select sum(POINT) as point , to_char(p.EXPIRE_DATE,'yyyy/mm/dd') as strParam
     from MSTB_CUSTOMER p
     where p.STATUS = 1 
      and EXPIRE_DATE>=to_date(to_char(sysdate,'yyyymmdd'),'yyyymmdd')

 

优化前:

select sum(POINT) as point , to_char(p.EXPIRE_DATE,'yyyy/mm/dd') as strParam
     from MSTB_CUSTOMER p
     where p.STATUS = 1 
     and to_char(p.EXPIRE_DATE,'yyyy-mm-dd') = '2018-12-04'

(需要优化的功能: 时间比较 , 忽略数据库时间字段的时分秒 , 精确到日)

优化后:

select sum(POINT) as point , to_char(p.EXPIRE_DATE,'yyyy/mm/dd') as strParam
     from MSTB_CUSTOMER p
     where p.STATUS = 1 
     and  p.EXPIRE_DATE >=to_date( '2018-12-04' || '00:00:00' , 'yyyy-mm-dd  hh24:mi:ss')

     and  p.EXPIRE_DATE <=to_date( '2018-12-04' || '23:59:59' , 'yyyy-mm-dd  hh24:mi:ss')

 

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(java技术,数据库)