как передать значение для поля datetime в предложении where в sql server - PullRequest
0 голосов
/ 31 мая 2011

Эй, ребята, я создал хранимую процедуру, в которой у меня есть поле даты и времени в запросе выбора.вот что мой запрос

select * from tablename where publishdate like '%03/10/2011%'

возможно ли это, или как мне сформировать запрос, моя цель - запрос должен вернуть записи за 10 марта 2011 года

Ответы [ 3 ]

1 голос
/ 31 мая 2011

Использование CONVERT

select * from tablename where convert(varchar(10), publishdate, 103) = '03/10/2011'
0 голосов
/ 31 мая 2011

Лучший способ сделать это:

Select * 
from   tablename
Where  publishdate >= '20110310'
       and publishdate < '20110311'

Разделяя подобные условия, вы разрешаете SQL Server использовать индекс для столбца publishdate (если индекс существует). Показанный мной запрос будет использовать сверхскоростной поиск по индексу вместо сканирования, что приведет к гораздо большей производительности.

0 голосов
/ 31 мая 2011

Попробуйте

select * from tablename where day(publishdate) = 10 And Month(publishdate) = 3
And Year(publishdate) = 2011 --Let the required date be 10th March 2011

Надеюсь, эта помощь.

...