Объединить DateTime (гггг-мм-дд ЧЧ: мм: сс.ффф) со строкой в ​​динамическом запросе c sql - PullRequest
0 голосов
/ 25 февраля 2020

У меня есть значение DateTime ниже, полученное с использованием функции T- SQL GetDate(), и я пытаюсь связать его с динамическим c SQL запросом.

2020-02- 25 11: 35: 29.240

, и я пытаюсь объединить предложение WHERE следующим образом:

CREATE PROCEDURE dbo.MyProc
   @paramList varchar(200)
AS
BEGIN
DECLARE @sqlCommand nvarchar(max)
DECLARE @Now DATETIME = Getdate() 

-- Do some stuff

SET @sqlCommand ='SELECT * FROM MyTable WHERE DeptId IN (' + @paramList + ') AND ''' + @Now + ''' <= datetimeField'

EXECUTE sp_executesql @sqlCommand

END

, но оно не работает.

Примечание : @paramList - это sp-параметр, полученный из C#. NET.

1 Ответ

3 голосов
/ 25 февраля 2020

Вы можете использовать sp_executesql с параметром:

SET @sqlCommand ='SELECT * FROM MyTable WHERE @now <= datetimeField'    

EXECUTE sp_executesql @sqlCommand, N'@now datetime', @Now = @Now

Однако простой запрос будет делать то, что вы хотите:

DECLARE @Now DATETIME = GETDATE() 

SELECT * 
FROM MyTable 
WHERE datetimeField <= @Now;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...