select * from table where date between to_date('2002-02-02','yyyy-mm-dd') and to_date('2003-02-02','yyyy-mm-dd')

解决方案 »

  1.   

    select * from table where date>=to_date('2002-02-02','yyyy-mm-dd') and date<=to_date('2003-02-02','yyyy-mm-dd')
      

  2.   

    select * from datetest where date>=to_date('2001-01-04','yyyy-mm-dd') and date<=to_date('2004-01-06','yyyy-mm-dd')
      

  3.   

    不行啊,返回java.lang.NullPointerException
    DATE中存储的是sysdate时间,不是yyyy-mm-dd,可以用to_date('2002-02-02','yyyy-mm-dd')吗?
      

  4.   

    可以的啊。NullPointerException不会是数据库抛出来的吧?呵呵,oracle好象不会抛这个异常的。是不是你的数据处理的时候出现了对null对象的操作?
      

  5.   

    NullPointerException是在执行了sql以后,rs.next()时发生的,若改为sql="SELECT * FROM DATETEST ";就不会发生了,可以读出所有数据。
    在sql-plus中执行select * from datetest where date>=to_date('2001-01-04','yyyy-mm-dd') and date<=to_date('2004-01-06','yyyy-mm-dd');
    返回:缺少表达式
      

  6.   

    整个过程是这样的:
    建了一个测试表DATETEST,包含两个字段:NAME(VARCHAR)DATE(DATE)。
    先执行sql= " insert into DATETEST (name, date) values '123',sysdate)";
    sql=" insert into DATETEST (name, date) values '456',sysdate)";
    此时执行sql="SELECT * FROM DATETEST ";可以读出上面的两条记录。
    但是现在需要的操作是:前一页面通过form传递过来两个字符串,比如分别为time1="2004-3-15";time2="2004-3-16"表示起始和结束的日期。假设表中的纪录很多,希望取出这两个日期之间的所有记录。
    在sql-plus中执行select * from datetest where date>=to_date('2001-01-04','yyyy-mm-dd') and date<=to_date('2004-01-06','yyyy-mm-dd');
    返回:缺少表达式
    使用between and 也是同样的问题。
    在jsp文件中报java.lang.NullPointerException,执行sql="SELECT * FROM DATETEST ";则没有问题。
    请问该如何解决呀?
      

  7.   

    "and qsrq>=to_date('" +TextBox1.Text.Trim()+"','yyyy-mm-dd hh24:mi:ss') and qsrq <= to_date('" +TextBox1.Text.Trim()+"','yyyy-mm-dd hh24:mi:ss')";
      

  8.   

    "and qsrq>=to_date('" +TextBox1.Text.Trim()+"','yyyy-mm-dd hh24:mi:ss') and qsrq <= to_date('" +TextBox2.Text.Trim()+"','yyyy-mm-dd hh24:mi:ss')";
    textbox1.2的text是时间的标准格式,我是直接去calendar的日期的!
      

  9.   

    现在可以了,原来是因为必须写成to_date('2004-1-1 00:00:00','yyyy-mm-dd hh24:mi:ss')才行