Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 将存储过程输入的Varchar转换为Datetime_Sql_Sql Server_Tsql - Fatal编程技术网

Sql 将存储过程输入的Varchar转换为Datetime

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

我想在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' 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
,请使用单独的变量)