Я пытаюсь передать переменную даты в открытом запросе, но выдает ошибку типа
"Неверный синтаксис рядом с + "
Вот мой запрос:
DECLARE @fromdt DATETIME = '2018-04-07';
DECLARE @EndDate1 DATETIME = '2018-04-07';
Select * from openquery(TIMEV,
'SELECT REPLACE(LTRIM(REPLACE(badgenumber,"0"," "))," ","0") badgenumber,
checktime as dt
from checkinout a
join USERINFO c on c.userid=a.userid
WHERE checktime >= '''''+CONVERT(CHAR(10), @fromdt, 120)+''''' AND ''''' + CONVERT(CHAR(10), @EndDate1, 120) + ''''' ')
Я здесь застрял. Заранее спасибо..
Вы пытались манипулировать параметрами даты в отдельной команде? Вы должны иметь возможность передавать параметры, а не использовать динамический sql
Чтобы немного прояснить, установите @param = convert(@param...)
@ LJ01 - это не поможет, потому что документация
OPENQUERY
явно запрещает использование любых переменных. Так что это не проблема преобразования, это проблема передачи любой переменной. Однако это должно быть исправлено чем-то вроде моего ответа. По предоставленной ссылке есть несколько обходных путей для этого.Извините, я все еще не вижу никакого смысла в использовании openquery. Есть ли что-то, что нельзя сделать с помощью стандартного запроса?