sqlserver 从字符串向 datetime 转换时失败。在存储过程中执行时出现问题

declare @a nvarchar(2000);
declare @n DateTime;
set @n='2014-07-24 16:10:09.193'
set @a='select * from dbo.ERP_1_StockPrivate where expiryDate=CONVERT(DATETIME,'+@n+')'
exec (@a)
declare @a nvarchar(2000);
declare @n DateTime;
set @n='2014-07-24 16:10:09.193'
set @a='select * from dbo.ERP_1_StockPrivate where expiryDate='+@n+'
exec (@a)
俩出现问题一样

第1个回答  推荐于2017-07-20
需要先将@n转成字符串,才能拼字符串。
或是,你把@n 定义成字符类型。追问

declare @n varchar(200);

set @n='2014-07-24 16:10:09.193'
set @a='select * from dbo.ERP_1_StockPrivate where expiryDate=CONVERT(DATETIME,'+@n+',120)'
exec (@a)
又出现'16' 附近有语法错误。这个错误了

本回答被提问者采纳
第2个回答  2014-07-29
set @a='select * from dbo.ERP_1_StockPrivate  where expiryDate='''+@n+'''

相似回答