2014-11-19 3 views
0

Мне нужно сделать запрос с C# и сравнить с datetime. Datetime хранится в моей базе данных, как это:Как сравнить SQL Server Datetime с C#

2014-11-09 00:00:01 

и я использую этот запрос:

SELECT * 
FROM Table 
WHERE DATETIMEVAR = '19/11/2014 0:00:01' AND OTHERVAR = 1 

Но это не в том же формате. Есть ли способ конвертировать из System.DateTime в C# в даты на SQL Server или способ отбрасывать из SQL Server datetime в этом формате? Должен ли я проверить с like вместо = в статье Where.

Спасибо.

+0

Я не думаю, что должен быть какой-либо вопрос, попутно DateTime из C# в SQL Server. С какими проблемами вы сталкиваетесь? – sdeep

+1

Если вы храните дату-время в SQL, тогда у него нет формата. То же, что и DateTime в C# - он также не имеет формата. Это не строка. – TomTom

ответ

2

Если вы генерируете запрос из объекта DateTime, просто сделайте date.ToString("yyyy-MM-dd HH:mm:ss"), чтобы преобразовать его в этот формат в запросе.

+0

Право !! Я решил это с этим !! Благодаря!! – Carol

+1

Верхний регистр «SS» должен быть в нижнем регистре, чувак! –

4

лучший путь будет иметь параметризованных запрос в C#, а затем установить дату параметра времени как DateTime (вместо того, чтобы полагаться на преобразование даты и обратно и из строк).

Таким образом, вы должны иметь что-то вроде:

SELECT * 
FROM Table 
WHERE DATETIMEVAR = @DateTimeValue AND OTHERVAR = 1 

, а затем определить, что @DateTimeValue параметр , как DateTime и установить его в качестве DateTime

Этот подход:

  • предотвращает SQL инъекция уязвимость
  • избежать каких-либо проблем, строка/форматирования - это сравнивает DATETIME к System.DateTime в их формате родной
Смежные вопросы