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

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变量要加冒号的。:变量名