如何在执行存储过程时传递datetime参数。 [英] how to pass a datetime parameter while executing stored procedure.
本文介绍了如何在执行存储过程时传递datetime参数。的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我的存储过程如下:
ALTER程序[dbo]。[spuserdetails]
@Name varchar(50),
@DOB datetime,
@Age int = null,
@ Address1 varchar(70),
@phone int,
@Country varchar(50)= null,
@States Varchar(50)= null,
@City varchar(50)= null
As
开始
插入userdetails(Name,DOB,Addr,phn,Country ,州,市)
值(@ Name,@ DOB,@ Address1,@ phone,@ Country,@ States,@ City)
end
$ b当我执行它时,$ b
:
exec spuserdetails'smasher','23-12-1989','516-A wills street' ,761456,'India','kerala','Tri',1
执行存储过程时出现以下错误:
消息8114,级别16,状态5,过程spuserdetails,行0
将数据类型varchar转换为datetime时出错。
为什么?如何在表中传递datetime参数?
解决方案
交换日期参数,使其为'yyyy-mm-dd',例如:'1989-12-23'
你必须传递像MM-DD-YYYY(例如:12-01-2010)或YYYY-MM-DD
改变你的日期价值如下
exec spuserdetails'smasher','1989-12-23','516-A wills street',761456,'印度, '喀拉拉邦', '三',1
my stored procedure is as follows:
ALTER procedure [dbo].[spuserdetails] @Name varchar(50), @DOB datetime, @Age int=null, @Address1 varchar(70), @phone int, @Country varchar(50) = null, @States Varchar(50) = null, @City varchar(50) = null As Begin insert into userdetails(Name,DOB,Addr,phn,Country,States,City) values (@Name,@DOB , @Address1 , @phone , @Country, @States, @City) end
when i execute it :
exec spuserdetails 'smasher','23-12-1989' ,'516-A wills street',761456,'India','kerala','Tri',1
the following error occurs when i execute stored procedure:
Msg 8114, Level 16, State 5, Procedure spuserdetails, Line 0 Error converting data type varchar to datetime.
why? how to pass a datetime parameter in table?
解决方案
Swap your date parameter around so that it's 'yyyy-mm-dd' eg: '1989-12-23'
you have to pass like MM-DD-YYYY (ex:12-01-2010) or YYYY-MM-DD
Change you date value as below
exec spuserdetails 'smasher','1989-12-23' ,'516-A wills street',761456,'India','kerala','Tri',1
这篇关于如何在执行存储过程时传递datetime参数。的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文