Даты в Access / Jet / ACE хранятся не как текстовое представление, а как двойные, где целая часть - это день с 30.12.1999, а десятичная часть - время. У всех дат есть часть времени.
Если вы использовали Now () для заполнения рассматриваемого поля или иным образом сохраняли часть времени, отличную от 0, в поле, вы не получите точного соответствия. Вместо этого вам придется использовать это:
toDate>=#23/6/2011# AND toDate<#24/6/2011# AND fromDate>=#25/6/2011# AND fromDate<#26/6/2011#
Это будет включать toDate
значения, которые относятся к дню 23/6/2011, но имеют временную часть.
Теперь я хотел бы спросить, почему вы включаете часть времени, отличную от 0, в поля с именами toDate
и fromDate
- если они действительно являются датами, они должны иметь только часть времени. Если вы заполняете эти даты в Access или через Jet / ACE SQL, вы можете использовать функцию Date (), которая возвращает только часть даты, а не Now (), которая возвращает текущую дату и время.
Чтобы исправить данные, имеющие значения времени, когда они должны быть только значениями даты, просто запустите обновление, чтобы изменить поля на целочисленные значения, например, SET toDate = Int(toDate)
.