你的这段代码看来,DATE的比较类型上没有问题。
解决方案 »
- 电脑ip地址变了以后,oracle服务器不能用怎么办?大虾来帮忙~~
- oracle对表插入数据时,一列为同一表中另一列的值加15,语句怎么写
- 应该是简单oracle语法错误吧。
- 在linux安装oracle时无法输入密码
- vb里rs![数据库字段名]是什么意思?
- 如何往表中插入带&的字段
- 表中加入一个流水号字段,怎么做?
- 用exp导出数据后,在生产服务器上想覆盖所有的表结构及存储过程,怎么做
- oracle 存储图形文件的问题
- 在9i下如何写存储过程,顺便给个例子,在线等待
- 两个用户各有自己的表空间,现想用sql语句将a用户的aa表中的数据插入到b用户的bb表中,怎么作呢??
- 缺少OCI.DLL文件,怎么办?
and hqfhz.begindate <= v_enddate_date
and hqfhz.enddate > v_begindate_date;
的话,就能查询出来呀,所以我觉得是这有问题,关键是
v_begindate_date := to_date(begindate,'yyyy-mm-dd');
这个转变对不对,我在test的时候,v_begindate_date变成了 2月2004年19日,是不是有什么关系??
and to_char(hqfhz.begindate,'yyyymmdd') <= to_char(v_enddate_date,'yyyymmdd')
and to_char(hqfhz.enddate,'yyyymmdd') > to_char(v_begindate_date,'yyyymmdd');
这样就不会有问题了。
where zhdz.accountclass ='1'
and zhdz.accountatt = deptcode
and zhdz.accountno = hqfhz.accountno
and zhdz.accounttype ='2'
and hqfhz.begindate <= to_date(2004-03-19,'yyyy-mm-dd')
and hqfhz.enddate > to_date(2004-02-19,'yyyy-mm-dd');
........--日期之间可以直接比较的.你把上面的一句单独拿出来调试一下,看是否有返回/
v_begindate_date := to_date(begindate,'yyyy-mm-dd');
这个转变对不对,我在test的时候,v_begindate_date变成了 2月2004年19日,
-----
如果hqfhz.enddate,begindate这两个字段是date类型的
不用考虑转换后日期的形式,都是date类型的就可以进行比较了。
and to_char(hqfhz.enddate,'YYYY-MM-DD') > v_begindate_date;这时一定要注意转换的格式了,一定要使用大写的‘YYYY-MM-DD’才能保证转换成2004-09-15,形式的字符串。
to_date(to_char(hqfhz.begindate, 'YYYY-MM-DD'),'YYYY-MM-DD')
to_date(to_char(hqfhz.enddate , 'YYYY-MM-DD'),'YYYY-MM-DD');
日期型比较比字符型比较更精确些。