当前位置: 代码迷 >> Sql Server >> 执行存储过程:EXEC+参数。为什么参数不能用GETDATE(),这类函数解决办法
  详细解决方案

执行存储过程:EXEC+参数。为什么参数不能用GETDATE(),这类函数解决办法

热度:75   发布时间:2016-04-27 13:58:10.0
执行存储过程:EXEC+参数。为什么参数不能用GETDATE(),这类函数
相同的参数 ,为什么不可以这样来第一个这样传,第二个则可以。
EXEC GetSocketBillNum 'hour','2011-12-11','2011-12-12'

SQL code
EXEC GetSocketBillNum 'hour',CONVERT(VARCHAR(12),CONVERT(VARCHAR(12),GETDATE(),23)


下面这个 我猜测是因为,我用了函数,所以它知道先执行哪个了?  

SQL code
declare @date1 varchar(12)declare @date2 varchar(12)SELECT @date1=CONVERT(VARCHAR(12),DATEADD(DAY,-1,GETDATE()),23)select @date2=CONVERT(VARCHAR(12),GETDATE(),23)print @date1+'   [email protected]EXEC GetSocketBillNum 'hour',@date1,@date2


------解决方案--------------------
存储过程参数只认变量,不认函数
------解决方案--------------------
过程的参数值,应该是一个确定的常量.而不是需要通过计算的表达式
------解决方案--------------------
参数不参与计算
------解决方案--------------------
貌似是规定喔, 没啥好解释的.

  相关解决方案