首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

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

2012-03-17 
执行存储过程:EXEC+参数。为什么参数不能用GETDATE(),这类函数相同的参数 ,为什么不可以这样来第一个这样传

执行存储过程: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+'   '+@date2EXEC GetSocketBillNum 'hour',@date1,@date2


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

热点排行