Сравнение даты asp.net, переданной в качестве параметра хранимой процедуре, с датой в базе данных - PullRequest
0 голосов
/ 27 мая 2011

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

Мой запрос выглядит следующим образом:

         @date datetime

         Select * from table
         where (CONVERT(NVARCHAR,[date],112)=CONVERT(NVARCHAR,@date,112))

У меня нет проблем с тем, чтобы вставить дату, переданную в качестве параметра из asp.net, сервер sql позаботится о формате даты.

Любой, пожалуйста, скажите мне, как я могу сравнить эти даты ..

Ответы [ 2 ]

2 голосов
/ 27 мая 2011

Правильный способ сделать это -

@date datetime

Select * from table          
where [date] = @date

edit: если вы просто хотите сравнить компонент даты (исключая время) в SQL2005, сравните год, месяц и день.

Select * from table          
where DATEPART(YEAR, [date]) = DATEPART(YEAR, @date)
and DATEPART(MONTH, [date]) = DATEPART(MONTH, @date)
and DATEPART(DAY, [date]) = DATEPART(DAY, @date)

Я всегда предпочитаю избегать сравнения строк.

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

@ харун, можете ли вы указать код, как вы передаете параметр даты в дате, вы сохранили дату в типе DateTime, чтобы при написании

CMD.Parameters.AddWithValue("@date",aspDate.tostring("MM/dd/yyyy"`);

он будет передавать только часть даты параметру. Я предполагаю, что ваша переменная даты имеет значение Datetime

в SQL вы можете извлечь дату, как в следующем примере

select convert(varchar(10),@date,101);

надеюсь, что это поможет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...