Переменные привязки MySqlConnector datatime

#c# #.net #mysql

#c# #.net #mysql

Вопрос:

Я использую MySQL Connector для извлечения данных из базы данных MySQL в .NET-приложение. Вот мой код :

 DateTime syncStart = ....
DateTime syncFinish = ....
string Sql = "select * from orders where created_on > @SYNC_START_DATE and created_on <= @SYNC_FINISH_DATE"
myCommand = new MySqlCommand(Sql, conTrace);
myCommand.Parameters.AddWithValue("@SYNC_START_DATE", syncStart);
myCommand.Parameters.AddWithValue("@SYNC_FINISH_DATE", syncFinish);

myDataReader = myCommand.ExecuteReader();
  

Этот запрос должен вернуть кучу строк, но вместо этого считыватель ничего не возвращает
Я пробовал этот запрос, но вместо фильтрации по дате я отфильтровал по идентификатору, таким же образом привязав параметры, и это сработало.
Кажется, что это не работает, когда я использую параметры DateTime.
Кто-нибудь может мне помочь с этой проблемой?
Спасибо!

Комментарии:

1. Вы запускали трассировку, чтобы увидеть, какой фактически выполняется SQL? Нам это нужно, чтобы убедиться, что параметры SQL добавляются правильно

2. не по теме, но вам, возможно, захочется узнать, что в MYSQL есть BETWEEN синтаксис, который позволяет вам делать что-то вроде WHERE field BETWEEN low_value AND high_value .

Ответ №1:

Вам следует использовать between :

 SELECT * FROM ORDERS WHERE created_on BETWEEN @SYNC_START_DATE AND @SYNC_FINISH_DATE
  

http://www.w3schools.com/sql/sql_between.asp