怎样取得两个日期之间的所有记录?

solarsea 2004-03-16 04:33:12
前一页面通过form传递过来两个字符串,比如分别为time1="2004-1-1";time2="2004-1-5";oracal数据库中的表为DATETEST,有两个字段NAME,DATE,
其中DATE中存储的是sysdate时间。
怎样取出时间在2004-1-1和2004-1-5之间的所有记录?
sql server里好像可以这样用: sql="SELECT * FROM DATETEST WHERE DATE>='2001-1-4' AND DATE<'2004-1-6'";
oracal里该如何处理?
...全文
194 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
solarsea 2004-03-17
  • 打赏
  • 举报
回复
整个过程是这样的:
建了一个测试表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 ";则没有问题。
请问该如何解决呀?
oldmancsdn 2004-03-17
  • 打赏
  • 举报
回复
save
solarsea 2004-03-17
  • 打赏
  • 举报
回复
现在可以了,原来是因为必须写成to_date('2004-1-1 00:00:00','yyyy-mm-dd hh24:mi:ss')才行
snowy_howe 2004-03-17
  • 打赏
  • 举报
回复
date最好不要用做字段名。
nedvedlh 2004-03-17
  • 打赏
  • 举报
回复
"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的日期的!
nedvedlh 2004-03-17
  • 打赏
  • 举报
回复
"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')";
solarsea 2004-03-16
  • 打赏
  • 举报
回复
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');
返回:缺少表达式
dreamnear 2004-03-16
  • 打赏
  • 举报
回复
可以的啊。NullPointerException不会是数据库抛出来的吧?呵呵,oracle好象不会抛这个异常的。是不是你的数据处理的时候出现了对null对象的操作?
solarsea 2004-03-16
  • 打赏
  • 举报
回复
不行啊,返回java.lang.NullPointerException
DATE中存储的是sysdate时间,不是yyyy-mm-dd,可以用to_date('2002-02-02','yyyy-mm-dd')吗?
skystar99047 2004-03-16
  • 打赏
  • 举报
回复
select * from datetest where date>=to_date('2001-01-04','yyyy-mm-dd') and date<=to_date('2004-01-06','yyyy-mm-dd')
beckhambobo 2004-03-16
  • 打赏
  • 举报
回复
select * from table where date>=to_date('2002-02-02','yyyy-mm-dd') and date<=to_date('2003-02-02','yyyy-mm-dd')
amigo_xsy 2004-03-16
  • 打赏
  • 举报
回复
select * from table where date between to_date('2002-02-02','yyyy-mm-dd') and to_date('2003-02-02','yyyy-mm-dd')

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧