You need to convert @ddtimeto varcharsince you include it in the string:
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)
or just you @ddtimeas varcharinstead datetime.
Declare @ddtime varchar(25)
convert(varchar(25), @ddtime, 121) leaves your date in the same format in which you originally set it.
How to format date and time on Sql server
Taryn source
share