注册 登录
编程论坛 PowerBuilder

date型字段数据更新问题

jump2003 发布于 2006-05-24 19:25, 950 次点击
date ls_csrq

ls_csrq=dw_1.object.csrq[g_rownumber]

update mwd_zggzzczb set csrq=:ls_csrq
where mwd_zggzzczb.xm=:ls_xm;

应用程序报:cannot convert datatime in any variable to date!
csrq字段PB建表明明是date类型,怎么会变成datetime类型的啊?真是不明白,这要如何转换啊?
7 回复
#2
jump20032006-05-24 20:51
上面的错在这:ls_csrq=date(dw_1.object.csrq[g_rownumber])
可是还有问题!
integer ls_xb,nl
date ls_csrq
dw_1.accepttext()
g_rownumber=dw_1.getrow()
ls_xm=dw_1.getitemstring(g_rownumber,1)
select xb,csrq into :ls_xb,:ls_csrq from mwd_zggrzhxxk
where mwd_zggrzhxxk.xm = :ls_xm;
nl=year(today()) - year(date(ls_csrq))
dw_1.setitem(g_rownumber,2,ls_xb)
dw_1.setitem(g_rownumber,3,nl)
这样nl值为2006,好象ls_csrq为'1900-01-01'啊,可库里明明是其他日期啊,怎么会这样??
#3
jump20032006-05-24 21:01
问题好象出在year(date(ls_csrq))上,从oracle里取出来的日期格式是不是要转换一下啊?
#4
ヤ順祺冄繎ヤ2006-05-25 12:26
怎么最近全是Date类型转换问题呢?
你在Oracle设置的是什么类型?
#5
jump20032006-05-28 09:53
oracle里的也是date类型啊?这个问题到现在还没解决呢!!郁闷死了~~~~~
#6
jump20032006-05-28 09:56
select xb,csrq into :ls_xb,:ls_csrq from mwd_zggrzhxxk
where mwd_zggrzhxxk.xm = :ls_xm;
nl=year(today()) - year(date(ls_csrq))
上两条语句应该都没任何问题啊?!!
dw_1.setitem(g_rownumber,3,nl)可这条语句 nl(年龄)就怎么变成106了啊????库里该用户对应的csrq可不是'1900-01-01'啊,真的插纳闷的啊!!!~
#7
jump20032006-05-28 10:17

版主在吗??可以帮我解答一下吗???急啊~~~~~~~~~~~万分感谢了~!!!!

#8
jump20032006-05-28 13:53
终于解决了,表里csrq定义的时候是date型,可是PB数据窗口里csrq自己转换成datetime类型了,定义datetime ls_csrq 一切就OK了!
1