Die unter dynamischen SQL smalldatetime wirft einen Fehler:SQL Server - Konvertieren in dynamische SQL-Anweisung
The conversion failed when converting character string to smalldatetime data type
Mein Code:
DECLARE @pTimeStamp smalldatetime
SET @pTimeStamp = '2017-05-22 12:15:00'
DECLARE @SQLQuery AS NVARCHAR(4000)
Set @SQLQuery = N'Select *' +
' From SampleTable' +
' Where TimeStamp = ' + @pTimeStamp
EXECUTE sp_executesql @SQLQuery
Ich habe auch versucht
Convert(smalldatetime, @pTimeStamp, 20)
sowie
CAST(@pTimeStamp AS smalldatetime)
aber ich bekomme nur andere Fehler. Ich habe auch versucht, @pTimeStamp
als varchar(50)
zu deklarieren und dann konvertieren, aber immer noch Fehler.
Etwas zu tun, einfach wie:
DECLARE @pTimeStamp smalldatetime
SET @pTimeStamp = '2012-01-22 12:15:00'
Select *
From SampleTable
Where TimeStamp = @pTimeStamp
lief gut, so vermute ich es mit der dynamischen SQL zu tun hat.
Bitte helfen ....
Jedes Mal, wenn ich in ein Problem wie thi laufen s Ich füge einen PRINT zu meinem Code hinzu, um zu sehen, wie mein dynamischer SQL aussieht. –
Warum schreiben Sie eine solche Abfrage? Warum verwenden Sie keine parametrisierten Abfragen? –
Warum verwenden Sie dynamische SQL hier an erster Stelle? Von dem, was Sie gepostet haben, ist kein dynamischer SQL erforderlich. Und wenn Sie das tun, sollten Sie es parametrisieren. –