读书人

PB中date类型在SQL语句中的使用有关问

发布时间: 2012-02-05 12:07:15 作者: rapoo

PB中date类型在SQL语句中的使用问题!
数据库用的是ORACLE 9i,举例:
string id
string date1
string date2
id=trim(stl_1.text)
select to_char(to_date(to_char(SYSDATE, 'YYYY-MON')||'-01', 'YYYY-MON-DD'),'YYYY-MM-DD') into :date1 from dual;
select to_char(last_day(SYSDATE),'YYYY-MM-DD') into :date2 from dual;

select sum(a.sjjz) + sum(a.YB_TCJE) into :jz from fpk a,ghk b where b.ghrq between to_date(date1,'yyyy-mm-dd') and to_date(date2,'yyyy-mm-dd') and a.lsh=b.lsh and b.blh=:id;

messagebox("显示结果",string(jz))
//结果JZ查出来是0,本来如果正确执行应该能查到从date1到date2这期间的数据才对!
//如果换作下面这种就没问题
select sum(a.sjjz) + sum(a.YB_TCJE) into :jz from fpk a,ghk b where b.ghrq between to_date(to_char(to_date(to_char(SYSDATE, 'YYYY-MON')||'-01', 'YYYY-MON-DD'),'YYYY-MM-DD'),'yyyy-mm-dd') and to_date(to_char(last_day(SYSDATE),'YYYY-MM-DD'),'yyyy-mm-dd') and a.lsh=b.lsh and b.blh=:id;
messagebox("显示结果",string(jz))
//结果JZ有数目

同样的情况还有:

date date1
date date2
string id
id=trim(stl_1.text)

date1=dp_1.datevalue
date2=dp_2.datevalue
id=trim(st_1.text)

select sum(a.sjjz) + sum(a.YB_TCJE) into :jz from fpk a,ghk b where b.ghrq between to_date(date1,'yyyy-mm-dd') and to_date(date2,'yyyy-mm-dd') and a.lsh=b.lsh and b.blh=:id;

messagebox("显示结果",string(jz))
//结果JZ查出来是0,本来如果正确执行应该能查到从date1到date2这期间的数据才对!


请问上面的语句哪里不对?请教各位大侠了!



[解决办法]
to_date() 和to_char()函数的内容是什么?
[解决办法]
PB 的date 类型可以转成yyyy-mm-dd 形式的string 再与DB 交互。

[解决办法]
直接定义成date 类型不行?
[解决办法]
pb自定义的函数不能用在sql中,需要db自带的函数或db的自定义函数才可以
[解决办法]
兄弟,内嵌SQL里引用PB变量要加冒号的。:变量名

读书人网 >PB

热点推荐