SQL Server – 将默认DateTime值分配给存储过程中的参数
发布时间:2020-05-24 10:04:10 所属栏目:MsSql 来源:互联网
导读:也许我在这里是个白痴,但我正在尝试将默认的DateTime值分配给MS SQL Server 2005中的存储过程,但无法让它工作,例如: CREATE PROCEDURE MyProcedure( @MyInteger INT = 123, @MyDateTime DATETIME = CONVERT(DATETIME, 1753-01-01 00:00:00,
|
也许我在这里是个白痴,但我正在尝试将默认的DateTime值分配给MS SQL Server 2005中的存储过程,但无法让它工作,例如: CREATE PROCEDURE MyProcedure
(
@MyInteger INT = 123,@MyDateTime DATETIME = CONVERT(DATETIME,'1753-01-01 00:00:00',20)
)
AS
BEGIN ... (snip)
因此,如果未指定@MyDateTime输入参数,则默认情况下应使用’1753-01-01 00:00:00′,但是我收到错误… Incorrect syntax near the keyword 'CONVERT'. 我可以让它为Integers工作就好了.我究竟做错了什么? 编辑:从下面的答案中,我最终在Sproc本身内部进行了以下操作: CREATE PROCEDURE MyProcedure
(
@MyInteger INT = 123,@MyDateTime DATETIME = NULL
)
AS
BEGIN
SET NOCOUNT ON
SET @MyDateTime = COALESCE(@MyDateTime,CONVERT(DATETIME,20))
...snip...
END
解决方法@MyDateTime DATETIME =’1753-01-01 00:00:00′或者在sproc内你可以这样做: SELECT @MyDateTime =(SELECT CONVERT(DATETIME,’1753-01-01 00:00:00′,20)) 该错误是由于调用CONVERT,在默认参数时您无法执行此操作. (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
