Это очень старый процесс, но учитывая большой опыт, который я имел с датами, вы можете подумать об этом: люди используют разные региональные настройки, поэтому некоторые люди (и некоторые базы данных / компьютеры, в зависимости от региональных настроек) могут читать это дата 11/12/2016 - 11 декабря 2016 года или 12 ноября 2016 года. Более того, 16/11/12, поставляемая в базу данных MySQL, будет внутренне преобразована в 12 ноября 2016 года, а база данных Access, работающая на компьютере с региональными настройками в Великобритании, будет интерпретировать и хранить его как 16 ноября 2012 года.
Поэтому я решил, что моя политика должна быть явной, когда я собираюсь взаимодействовать с датами и базами данных. Поэтому я всегда предоставляю свои запросы и программные коды следующим образом:
SELECT FirstName FROM Students WHERE DoB >= '11 Dec 2016';
Также обратите внимание, что Access примет #, таким образом:
SELECT FirstName FROM Students WHERE DoB >= #11 Dec 2016#;
но MS SQL server не будет, поэтому я всегда использую «», как указано выше, что принимают обе базы данных.
И когда я получаю эту дату из переменной в коде, я всегда конвертирую результат в строку следующим образом:
"SELECT FirstName FROM Students WHERE DoB >= " & myDate.ToString("d MMM yyyy")
Я пишу это, потому что я знаю, что иногда некоторые программисты могут быть недостаточно заинтересованы в обнаружении собственного преобразования. Для дат <13 ошибок не будет, просто разные результаты!
Что касается заданного вопроса, добавьте один день к последней дате и сделайте сравнение следующим образом:
dated >= '11 Nov 2016' AND dated < '15 Nov 2016'