由于某些原因我无法转换为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时出现转换错误

最佳答案

您需要将@ddtime转换为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作为varchar而不是datetime
Declare @ddtime varchar(25)
convert(varchar(25), @ddtime, 121)将您的日期保留为最初设置时的格式。

How to format datetime & date in Sql Server

10-07 17:58