Я пытаюсь создать параметризованный запрос для получения данных обратно из таблицыSQL параметризованных имена столбцов
По существу у меня есть таблица структура ID nvarchar1 NTEXT datetime1 Datetime2
и я пытаясь сделать запрос так, чтобы он выбирал все данные, где текущая дата больше, чем datetime1 и меньше, чем datetime2
SELECT
ID, nvarchar1,
ntext,
datetime1,
datetime2
FROM
TABLEName
WHERE
datetime1 >= @CurrentDate
AND datetime2 <= @CurrentDate
Я хочу, чтобы параметры столбцов, такие как @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)
Данные будут приходить из источника данных SP, так что я не имею никакого контроля колонки имена и т. д., и когда я создаю списки SP, они автоматически присваивают столбец таблицы этого типа, поэтому мне нужно, чтобы столбцы были параметрами.
Используя приведенный выше код, который я думал, что должен работать возвращается
Msg 241, Level 16, State 1, Line 14 преобразование не удалось при преобразовании даты и/или времени из строки символов.
Что я делаю неправильно?
Так что ваш вопрос? – MusicLovingIndianGirl
Вам не нужны кавычки для переменных типа datetime. ICBW. –