各位大哥,为什么我下面的这一句一执行它就报字符已指定的转换格式不匹配,困绕我好几天了,实在搞不懂,各位大哥指教指教.
select * 
 from cus_contract_sftx 
 where 
 to_date(sysdate,'yyyy/mm/dd')=to_date('2006/01/01','yyyy/mm/dd') 

解决方案 »

  1.   

    你试一下如下的:
    select * 
     from cus_contract_sftx 
     where 
     to_date(to_char(sysdate, 'yyyy/mm/dd'),'yyyy/mm/dd')
    =to_date('2006/01/01','yyyy/mm/dd') 
      

  2.   

    sysdate本身是日期型的,因此需用to_char转换为字符串to_char(sysdate,'yyyy/mm/dd'),楼上的就可以实现你要的功能
      

  3.   

    select * 
     from cus_contract_sftx 
     where 
     trunc(sysdate)=to_date('2006/01/01','yyyy/mm/dd') 就可以了,sysdate本身就是date型,不能再to_date().
      

  4.   

    用to_date(to_char(sysdate, 'yyyy/mm/dd'),'yyyy/mm/dd')的都属于头脑发热的人,不清醒状态。
      

  5.   

    楼主还是好好学习一下PL/SQL的函数吧
      

  6.   

    select *  from cus_contract_sftx  where sysdate=to_date('2006/01/01','yyyy/mm/dd') 
    或者
    select *  from cus_contract_sftx  where to_char(sysdate,'yyyy/mm/dd')='2006/01/01'保持条件等号两边的格式一致就可以了
      

  7.   

    你用regedit看看注册表里的缺省格式就明白了
      

  8.   

    为什么非得要to_date,to_char不挺好的么,来回变什么啊。