Select * from VIDEOSCHEDULE  where DTE =to_date('2002-01-07','yyyy-mm-dd')

解决方案 »

  1.   

    Select  *  from  VIDEOSCHEDULE    where  DTE  =to_date('2002-01-07','yyyy-mm-dd');
      

  2.   

    这样写当然不行,DTE = '2002-01-07'这个一边是日期类型,一边是字符类型怎么比较呢
      

  3.   

    类型不匹配,应该to_date('2003-01-07','yyyy-mm-dd')一下
      

  4.   

    那为什么在别人的机器上就能通过呢?讨厌的是:这个程序我是不能修改的,我的工作是把asp页面里的程序放到新改的html页面的适当位置,人家要求不让我们动程序。
      

  5.   

    这个跟字符集有关系
    你试一下这样应该是可以的
    Select * from VIDEOSCHEDULE where DTE ='01-7月-02'
      

  6.   

    是我本机的oracle字符集的原因吗?where里的dte的参数是不能变的啊,我不能修改这个程序。现在我只求能够通过,不知道应该修改些什么?语句只能用这个了:(
    Select * from VIDEOSCHEDULE  where DTE = '2002-01-07',这是要求,哎!
      

  7.   

    修改日期格式试试:alter system set nls_date_format = 'yyyy-mm-dd hh24:mi:ss';
      

  8.   

    谢谢了,不过我用这个语句报错了:ORA-02096: specified initialization parameter is not modifiable with this option
    怎么才能修改字符集呢?难道安装了就不能改吗?
      

  9.   

    alter session set nls_date_format = 'yyyy-mm-dd hh24:mi:ss';
      

  10.   

    这个我试了,执行完之后再select sysdate确实变成了yyyy-mm-dd的格式,可是当我commit之后关掉sql-plus再重新进来,怎么找到的sysdate又变成了'01-7月-02的格式呢?是我commit的不对吗?我就是写了commit;啊!大虾再指点一下吧!不胜感激!!
      

  11.   

    现在好了,我在 object browser里执行这个语句然后commit就好了!谢谢~~~~啊~~~~~
      

  12.   

    其实还是没好,原来我看错了:(最后我是重装了oracle客户端