一个奇怪的小问题,Why??? 数据赋值。
select replace(replace(replace(replace(CONVERT(varchar(100), GETDATE(), 121),'-',''),' ',''),':',''),'.','')
这样可以,执行没有问题。
declare @DANoTest Char(32);--2011 01 12 18 23 45207
select @DANoTest = replace(replace(replace(replace(CONVERT(varchar(100), GETDATE(), 121),'-',''),' ',''),':',''),'.','')
这样就不行,查不出来结果。
为什么呢??? 只是声明了一个变量啊。
[最优解释]
select replace(replace(replace(replace(CONVERT(varchar(100), GETDATE(), 121),'-',''),' ',''),':',''),'.','')
declare @DANoTest Char(32);--2011 01 12 18 23 45207
set @DANoTest =CONVERT(CHAR(32),replace(replace(replace(replace(CONVERT(varchar(100), GETDATE(), 121),'-',''),' ',''),':',''),'.',''))
SELECT @DANoTest
为什么会报这样的错误呢???
declare @DANoTest Char(32);--2011 01 12 18 23 45207
select @DANoTest = replace(replace(replace(replace(CONVERT(varchar(100), GETDATE(), 121),'-',''),' ',''),':',''),'.','');
exec Usp_DAListForEnergyDataDetailsiping @DANo=@DANoTest,@DATime=GETDATE(),@LogTime=GETDATE(),@MeterType='EM',@MeterNo='A08001',@Qty=100
问题二:
使用参数也不行啊,提示错误:
消息 102,级别 15,状态 1,第 3 行
Incorrect syntax near ')'.
WhY???
[其他解释]
declare @DANoTest Char(32);--2011 01 12 18 23 45207
select @DANoTest = replace(replace(replace(replace(CONVERT(varchar(100), GETDATE(), 121),'-',''),' ',''),':',''),'.','')
select @DANoTest --到这里是没有问题的,参数值可以显示出来
exec Usp_DAListForEnergyDataDetailsiping @DANo=@DANoTest,@DATime=GETDATE(),@LogTime=GETDATE(),@MeterType='EM',@MeterNo='A08001',@Qty=100
问题:执行存储过程的时候就会报错,提示“Incorrect syntax near ')'.” 难道是存储过程中的错误???