Отправить параметр DateTime в хранимую процедуру связанного сервера - PullRequest
0 голосов
/ 02 октября 2019

Мне нужно вызвать хранимую процедуру на связанном сервере с параметрами DateTime.

В настоящее время я использую следующий запрос

SET @RunSP = 'EXEC [Database].[dbo].[sp_MySP] @StartDate = convert(datetime, '''+@S+''') , @EndDate = convert(datetime, '''+@E+ ''') ';

Я пробовал разные способы преобразования моих DateTime параметров, но каждый раз, когда я получаю следующую ошибку:

Msg 241, Level 16, State 1, Line 14
Conversion failed when converting date and/or time from character string.

1 Ответ

0 голосов
/ 02 октября 2019

преобразовать @S и @E в строковый формат YYYYMMDD и заключить его в одинарную кавычку

SET @RunSP  = 'EXEC [Database].[dbo].[sp_MySP] @StartDate = ''' + convert(varchar(10), @S, 112) + ''', @EndDate = '''  + convert(varchar(10), @E, 112) + ''''

Подсказка: сделать print @RunSP для просмотра вывода

Example @RunSP Output :
EXEC [Database].[dbo].[sp_MySP] @StartDate = '20170101', @EndDate = '20170101'
...