Вы используете конкатенацию строк для помещения значений запроса непосредственно в строку SQL. Не делайте этого по разным причинам, одна из которых является проблемой, которую вы здесь видите - как c# выбирает форматирование даты в виде строки в соответствии с вашими региональными предпочтениями и как MySQL выбирает синтаксический анализ строка как дата будет иметь прямое влияние на выполнение запроса. В качестве грубого примера, если ваша дата указана как «2/3/2000», что означает треть февраля, вы можете использовать mysql, что интерпретирует его как второе марта. В качестве альтернативы вы можете обнаружить, что c# представляет дату как нечто, что mysql не распознает как дату, поэтому вместо этого он преобразует дату EventTime в строку, а затем сравнивает строки, что очень маловероятно (и медленно из-за всех преобразований)
Либо настройте свой запрос так, чтобы расчет начала дня выполнялся с помощью базы данных, и параметризуйте другие элементы вашего запроса:
var query = "SELECT * FROM `jobs` WHERE `EventTime` < NOW() AND `EventTime` >= CURDATE() AND `PersonSel` = @personSel AND `PersonID` = @personID"
Или параметризуйте дату начала правильно, а не передавать ее значение в виде строки:
var query = "SELECT * FROM `jobs` WHERE `EventTime` < NOW() AND `EventTime` >= @eventTimeFrom AND `PersonSel` = @personSel AND `PersonID` = @personID"
Чтобы добавить значения для параметров, вы объявляете его имя, тип и значение:
var cmd = new MySqlCommand(query, connection);
cmd.Parameters.Add("@eventTime", MySqlDbType.DateTime).Value = dtstartofday; //dtstartofday is a c# datetime representing midnight today e.g DateTime.Date
cmd.Parameters.Add("@personSel", MySqlDbType.Int).Value = personassigned;
cmd.Parameters.Add("@personID", MySqlDbType.DateTime).Value = id;
var x = cmd.ExecuteReader();
Важно оцените разницу между сервером и вашим локальным компьютером, особенно если они находятся в разных зонах, но даже если их часы немного отклоняются. В какой-то момент то, что каждая машина представляет себе «сегодня», будет отличаться. Подумайте об этом внимательно.
Позже, когда вам надоест бесконечно писать такой код, вы можете установить Dapper, расширение, которое сделает это за вас. Взгляните на http://dapper-tutorial.net, чтобы увидеть, как он сократит такой код до двух строк; запрос и переменные на входе, используемые объекты на выходе.