Ich versuche, eine parametrisierte Abfrage zu erstellen, für die Daten wieder aus einer TabelleSQL Parametriertes Spaltennamen
Wesentlichen eine Tabellenstruktur von ID Abrufen Ich habe nvarchar1 ntext- datetime1 datetime2
und ich bin versuchen, eine Abfrage so zu tun, dass sie alle Daten auswählt, bei denen das aktuelle Datum größer als datetime1 und kleiner als datetime2 ist
SELECT
ID, nvarchar1,
ntext,
datetime1,
datetime2
FROM
TABLEName
WHERE
datetime1 >= @CurrentDate
AND datetime2 <= @CurrentDate
Ich möchte die Spalten Parameter wie @TableName, @CurrentDate, @StartDate, @EndDate
DECLARE @TableName NVARCHAR(100);
SET @TableName = '[Surveys].[dbo].[Table]'
DECLARE @CurrentDate DateTime;
SET @CurrentDate = GETDATE();
DECLARE @StartDate NVARCHAR(100);
SET @StartDate = 'datetime1'
DECLARE @EndDate NVARCHAR(100);
SET @EndDate = 'datetime2'
DECLARE @sql nvarchar(1000)
SET @sql = 'SELECT * FROM ' + @TableName + 'WHERE' + @EndDate + '>=' + @CurrentDate + 'AND' + @StartDatedatetime1 + '<=' + @CurrentDate
EXEC(@sql)
Die Daten geht zu kommen von einer SP-Datenquelle machen, so habe ich keine Kontrolle über die Spalte Namen etc. und wenn ich die SP-Listen erstelle, ordnen sie automatisch einer Tabellenspalte dieses Typs zu, deshalb brauche ich Spalten, um Parameter zu sein.
den obigen Code verwenden, die ich dachte, sollte 241 kehrt
Msg arbeiten, Ebene 16, Status 1, Zeile 14 Fehler bei der Konvertierung, wenn Datum Umwandlung und/oder Zeit aus Zeichenkette.
Was mache ich falsch?
Also, was ist Ihre Frage? – MusicLovingIndianGirl
Sie sollten für die Variablen vom Typ datetime keine Anführungszeichen benötigen. ICBW. –