Sql 将存储过程输入的Varchar转换为Datetime
我想在T-SQL中的存储过程中使用一个Sql 将存储过程输入的Varchar转换为Datetime,sql,sql-server,tsql,Sql,Sql Server,Tsql,我想在T-SQL中的存储过程中使用一个datetime参数,如果为NULL,它将恢复为12/31/9999 我的代码如下所示: EXEC abc.someStoredProc @i_param1, @i_param2, ISNULL(@l_Termination_date, '12/31/9999') 我得到一个错误: “@l_终止日期”附近的语法不正确 我尝试过使用convert和cast(例如: ISNULL(@l_Termination_date,CAST('12/31/9999' A
datetime
参数,如果为NULL,它将恢复为12/31/9999
我的代码如下所示:
EXEC abc.someStoredProc @i_param1, @i_param2, ISNULL(@l_Termination_date, '12/31/9999')
我得到一个错误:
“@l_终止日期”附近的语法不正确
我尝试过使用convert和cast(例如:
ISNULL(@l_Termination_date,CAST('12/31/9999' AS datetime))
但似乎做得不对。我做错了什么?您可以将变量或文字作为参数来传递以执行存储过程(或调用少数特定函数之一),但不能使用任意表达式 将其移动到单独的步骤:
SET @l_Termination_date = ISNULL(@l_Termination_date,'99991231')
EXEC abc.someStoredProc
@i_param1
, @i_param2
,@l_Termination_date
(如果您不想覆盖
@l\u Termination\u date
,也可以使用单独的变量)您可以将变量或文字作为参数传递以执行存储过程(或调用几个特定函数之一),但不能使用任意表达式
将其移动到单独的步骤:
SET @l_Termination_date = ISNULL(@l_Termination_date,'99991231')
EXEC abc.someStoredProc
@i_param1
, @i_param2
,@l_Termination_date
(如果不想覆盖@l\u Termination\u date
,请使用单独的变量)