关于一个日期型的sql 语句(20分)

  • 主题发起人 主题发起人 zhengyue
  • 开始时间 开始时间
Z

zhengyue

Unregistered / Unconfirmed
GUEST, unregistred user!
CREATE PROCEDURE [rkdadd]
(@date smalldatetime ,@khbh char(10),
@khmc varchar(30),@jbr char(4),@dwywy varchar(10),@zd char(4),
@rkdnum int output)
AS
insert rkd (date,khbh,khmc,jbr,zd) values (@date,@khbh,@khmc,@jbr,@zd)
select @rkdnum=max(rkdnum) from rkd


请问各位:
怎样为@date 赋默认的当天的日期
 
set @date=GETDATE()
 
我的意思是,当调用这个过程时,如果传入日期参数,则 在数据库中,写入传入的
参数,否则写入系统日期
 
CREATE PROCEDURE [rkdadd]
(@date smalldatetime=getdate,@khbh char(10)='',
@khmc varchar(30),@jbr char(4),@dwywy varchar(10),@zd char(4),
@rkdnum int output)
AS
insert rkd (date,khbh,khmc,jbr,zd) values (@date,@khbh,@khmc,@jbr,@zd)
select @rkdnum=max(rkdnum) from rkd

 
默认参数问题
 
CREATE PROCEDURE [rkdadd]
(@date smalldatetime ,@khbh char(10),
@khmc varchar(30),@jbr char(4),@dwywy varchar(10),@zd char(4),
@rkdnum int output)
AS
if @date > GetDate()
insert rkd (date,khbh,khmc,jbr,zd) values (@date,@khbh,@khmc,@jbr,@zd)
else
insert rkd (date,khbh,khmc,jbr,zd) values (GetDat()e,@khbh,@khmc,@jbr,@zd)
select @rkdnum=max(rkdnum) from rkd
 
CREATE PROCEDURE [rkdadd]
(@date smalldatetime ,@khbh char(10),
@khmc varchar(30),@jbr char(4),@dwywy varchar(10),@zd char(4),
@rkdnum int output)
AS
if @date is Null set @date=getdate()

insert rkd (date,khbh,khmc,jbr,zd) values (@date,@khbh,@khmc,@jbr,@zd)
select @rkdnum=max(rkdnum) from rkd
 
select @date=getdate()
 
王公子的好象部队,bes96261应该对,
在王公子中,如果用·@date=getdate()
sql报错,为什么?

 

这个是对的 @khbh char(10)='',
至于那个getdate,你进去调试一下就知啦,有可能是一个bug吧

 
多人接受答案了。
 
后退
顶部