在存储过程中运行以下 sql 时出现转换错误,因为由于某种原因我无法转换为 varchar
Declare @sql varchar(100)
Declare @ddtime datetime
set @ddtime = '2012-02-03 22:14:50.057'
set @sql = 'select * from table1 where tdate='+@ddtime
exec(@sql)
在存储过程中运行以下 sql 时出现转换错误,因为由于某种原因我无法转换为 varchar
Declare @sql varchar(100)
Declare @ddtime datetime
set @ddtime = '2012-02-03 22:14:50.057'
set @sql = 'select * from table1 where tdate='+@ddtime
exec(@sql)
您需要将其转换@ddtime
为 a ,varchar
因为您将其包含在字符串中:
Declare @sql varchar(100)
Declare @ddtime datetime
set @ddtime = '2012-02-03 22:14:50.057'
set @sql = 'select * from table1 where tdate= '''+ convert(nvarchar(25), @ddtime, 121) + ''''
exec(@sql)
或者只是让你@ddtime
作为 avarchar
而不是 a datetime
。
Declare @ddtime varchar(25)
保留日期的convert(varchar(25), @ddtime, 121)
格式与您最初设置的格式相同。
将@ddtime 变量数据类型更改为varchar。您正在尝试连接 varchar 和 datetime。
你的 ddtime 是日期时间
你不能将它连接到字符串。
改变
set @sql = 'select * from table1 where tdate='''+cast ( @ddtime as nvarchar(100))+''''
或者
改成
Declare @ddtime nvarchar(100)