用 TO_char() 函数来格式化一下.select * from a where to_char(rq,'yyyy-mm-dd')='2003-9-23'

解决方案 »

  1.   

    select * from a where to_char(rq, 'yyyymmdd') = '20030923'
      

  2.   

    SQL> select * from test where mydate=to_date('2003-4-12','yyyy-mm-dd');MYDATE
    ----------
    12-4月 -03
    12-4月 -03SQL> select * from test where mydate=to_date('2003-04-12','yyyy-mm-dd');MYDATE
    ----------
    12-4月 -03
    12-4月 -03SQL> select * from test where mydate='12-4月-2003';MYDATE
    ----------
    12-4月 -03
    12-4月 -03SQL> select * from test where to_char(mydate,'yyyy-mm-dd')='2003-4-12';未选定行SQL> select * from test where to_char(mydate,'yyyymmdd')='20030412';MYDATE
    ----------
    12-4月 -03
    12-4月 -03SQL> select * from test where to_char(mydate,'yyyy-mm-dd')='2003-04-12';MYDATE
    ----------
    12-4月 -03
    12-4月 -03请你比较这几个的区别,用to_char要小心。
      

  3.   

    忘了贴所有表数据:SQL> desc test;
     名称                      空?      类型
     ------------------------- -------- ------- MYDATE                   DATE
    SQL> select * from test;MYDATE
    ----------
    12-3月 -03
    12-4月 -03
    12-5月 -03
    12-4月 -03
      

  4.   

    alter session set nls_date_format='YYYY-MM-DD';select sysdate from dual;
      

  5.   

    或者在注册表里HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOME0\添加字符串nls_date_format,值为:YYYY-MM-DD,当然这是在服务器端添加
      

  6.   

    最后一种方法就是第一个回帖说的to_Char
      

  7.   

    考虑“时间”和性能,最好的方式应该是例如查询“2003年3月12日”select * from test 
    where mydate >= to_date('2003-03-12', 'YYYY-MM-DD') 
    and mydate < to_date('2003-03-13', 'YYYY-MM-DD')
      

  8.   

    select * from test where mydate = to_date('2003-03-12', 'yyyy-mm-dd')的效率绝对比
    select * from test where to_char(mydate, 'yyyy-mm-dd') = '2003-03-12'要高!!至于select * from test where mydate = to_date('2003-03-12', 'yyyy-mm-dd')和楼上的
    select * from test 
    where mydate >= to_date('2003-03-12', 'YYYY-MM-DD') 
    and mydate < to_date('2003-03-13', 'YYYY-MM-DD')
    孰优孰劣,由于没有经过测试比较,不好说。
      

  9.   

    tochar(date,'YYYYMMDD') 或 to_date(string,'YYYYMMDD') 都可以。随便选着用吧!!