PB中update 语句更新sql2000数据库中datetime字段的求助。

pcwwa 2008-04-08 12:46:55
我在sql2000数据库中有一个表:renyuan
id (int型)
open_date(datetime型) 8位长度

id open_date
里面有数据例如:10001 2006.02.20
10002 2006.03.11
10003 2006.03.21
... ...
需求:想让所有表的日期都自动加上10天!

在PB中直接执行 update renyuan set open_date= open_date +10 ; 就能添加

如果我把它(天数10)放到一个变量ts中,
integer ts
ts=10
在PB中执行 update renyuan set open_date= (open_date + :ts);
这样就不好用了,请问应该如何更改语句或定义变量?
...全文
211 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
qiyousyc 2008-04-08
  • 打赏
  • 举报
回复
open_date = dateadd(d,:ts,open_date)
青锋-SS 2008-04-08
  • 打赏
  • 举报
回复
//可以直接调用SQL的日期函数
update renyuan
set open_date = dateadd(d,:ts,open_date);
pmwb 2008-04-08
  • 打赏
  • 举报
回复
二楼讲的不错,核心的内容已说了。
现补充点小提示。
string ls_sql

ls_sql = "update renyuan set open_date= open_date + " + string( ts )
EXECUTE IMMEDIATE :ls_sql using sqlca;

IF sqlca.sqlcode = 0 THEN
COMMIT ;
messagebox("成功提示","已增加"+string(ts) +"天!");
ELSE
rollback;
messagebox("出错提示","操作失败,原因为"+string(SQLCA.SQLErrText));
END IF
zhgwbzhd 2008-04-08
  • 打赏
  • 举报
回复
推荐使用2楼回复的。
SKY_4K_PPM 2008-04-08
  • 打赏
  • 举报
回复
RELATIVEDATE(OPEN_DATE,10)!

STRING LS_SQL
LS_SQL="UPDATE RENYUAN SET OPEN_DATE=RELATIVEDATE(OPEN_DATE,10)"
EXCUTE IMMDIATE:LS_SQL ;
I_am_Z 2008-04-08
  • 打赏
  • 举报
回复
string ls_sql

ls_sql = "update renyuan set open_date= open_date + " + string( ts )
EXECUTE IMMEDIATE :ls_sql using sqlca;

754

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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