SQLserver总是提示数据类型 varchar 转换为 datetime 时出错!怎么办

create procedure 订房
(@hzt varchar(4),
@rno char(10),
@rname varchar(8),
@rsex varchar(4),
@rold char(10),
@rnum char(20),
@rid char(20),
@rroom varchar(10),
@rstuff varchar(8),
@rstarttime datetime,
@rovertime datetime,
@rwork varchar(10),
@rmoney char(10),
@rfinetype varchar(10),
@rfinenum char(10),
@rfinemoney char(10)
)
as
begin transaction --开始事务

if ((select Hzt
from House
where Hzt=@hzt) <> '空')
begin
print '该房间已满!'
Rollback transaction
return
end
else
begin
insert
into Renter
values(@rno,@rname,@rsex,@rold ,@rnum ,@rid,@rroom,@rstuff,@rstarttime,@rovertime,@rwork,@rmoney,@rfinetype,@rfinenum ,@rfinemoney )
print '房间可以使用,请继续!'
select *
from Renter
where Rno=@rno
end
commit tran

execute 订房 '011','黎朔','男','38','10955273898 ', '112212198312268625','B203','S3','2021-02-22 17:00:00.000','2021-02-24 17:00:00.000','上班族','2400','b0','0','0'

你的参数传得不对,参数传入的顺序 和你申明参数的顺序应该一致。你的第一个参数是011 你申明的第一个参数是 @hzt

申明参数个数和你传入的参数个数不一致

存储过程第一个参数是不是没有传@hzt varchar(4)