在DB2中怎样根据身份z号用存储过程计算出生日期

在DB2中怎样根据身份z号用存储过程计算出生日期,第1张

1、存储过程编写

DROP PROCEDURE "PLName"

@

CREATE PROCEDURE "PLName"(--存储过程名字

IN IN_ID BIGINT , --以下全是输入参数

IN IN_ENTNAME VARCHAR(200) ,

IN IN_REGNO VARCHAR(50),

IN IN_PASSWORD VARCHAR(20),

IN IN_LEREP VARCHAR(300),

IN IN_CERTYPE CHARACTER(1),

IN IN_CERNO VARCHAR(50),

IN IN_LINKMAN VARCHAR(50),

IN IN_SEX CHARACTER(1),

IN IN_MOBTEL VARCHAR(30),

IN IN_REQDATE TIMESTAMP,

IN IN_REMITEM VARCHAR(300),

IN IN_STATE CHARACTER(1),

IN IN_TIMESTAMP TIMESTAMP

)

BEGIN

declare V_RESULT BIGINT; --声明变量

DELETE FROM TableNameA WHERE ID = IN_ID;

SET V_RESULT = NULL; --为变量赋值

--检查用户输入的信息是否合法

select bid INTO V_RESULT from TableNameB b,TableNameC c where 正常的判断条件

if(V_RESULT IS NOT NULL) then ---如果合法,执行下面的insert语句

INSERT INTO TableNameA(ID,ENTNAME,REGNO,PASSWORD,LEREP,CERTYPE,CERNO,LINKMAN,SEX,MOBTEL,REQDATE,REMITEM,STATE,TIMESTAMP)

VALUES(IN_ID,IN_ENTNAME,IN_REGNO,IN_PASSWORD,IN_LEREP,IN_CERTYPE,IN_CERNO,IN_LINKMAN,IN_SEX,IN_MOBTEL,IN_REQDATE,IN_REMITEM,IN_STATE,IN_TIMESTAMP);

end if;

commit;

END

@

2、调用存储过程

1拷贝到DB2客户端工具中直接执行

2将上面的语句保存为testdb2文件放到任意目录下(比如D盘根目录),然后在cmd输入db2cmd 然后输入db2 -td@ -vf D:\testdb2即可

3直接写sql:

call PLName(存储过程名字) (IN_ID,IN_ENTNAME,IN_REGNO,IN_PASSWORD,IN_LEREP,IN_CERTYPE,IN_CERNO,IN_LINKMAN,IN_SEX,IN_MOBTEL,IN_REQDATE,IN_REMITEM,IN_STATE,IN_TIMESTAMP对应的值)

你传入的参数2没对吧,你传的是 '' ,sql系统默认 ‘’ = ‘01 1 1900 12:00AM’

除非你传入 null或都你的过程修改一如下:

create proc pro_shows

@firsttime datetime = null,

@lasttime datetime = null

as

select from table where (@firsttime is null or 时间字段>=@firsttime) and (@lasttime is null or 时间字段<=@lasttime)

SQL里有个函数:dateadd(d,-3,getdate()) ,第一个是设置那一项减少或增加,天就是D,第二个是变量,-3是三天前,+3是三天后,第三个为基础,getdate()是当前时间为基础

以上就是关于在DB2中怎样根据身份z号用存储过程计算出生日期全部的内容,包括:在DB2中怎样根据身份z号用存储过程计算出生日期、Sql存储过程日期范围查询、在sql的存储过程中,给定一个日期,怎么获得比这个日期大10天和小10天的日期等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9336928.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-27
下一篇2023-04-27

发表评论

登录后才能评论

评论列表(0条)

    保存