Запрос на Сравнение дат MS Access Не работает

#sql #ms-access

Вопрос:

Дорогие, я пытаюсь проверить количество записей в течение двух дат с помощью следующего запроса

 Select Count(id) As result 
From 
finished_tasks Where 
finish_date Between 
#06/06/2021# And #10/06/2021#
 

И у меня есть одна запись в таблице с датой окончания 15/06/2021
Проблема в том, что приведенный выше запрос возвращает результат 1 вместо 0
Я также пытался использовать

 where finish_date >= 
#06/06/2021# And finish_date 
<= #10/06/2021#
 

А также я получаю результат 1
Я не мог разобраться в проблеме, пожалуйста, помогите!

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

1. 15/06/2021 не имеет смысла. Косые черты обозначают мм/дд/гггг. Нет никакого 15-го месяца.

2. @ErikA — это международный формат дат, используемый в основном везде, кроме США!

Ответ №1:

Вы должны использовать либо последовательность ISO:

 #2021/06/06# And #2021/06/10#
 

или «обратный» формат США:

 #06/06/2021# And #06/10/2021#
 

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

1. Вероятно, следует отметить, что форматирование зависит от настроек системного времени пользователя, но ISO охватывает все.

2. @Parfait: Да, именно поэтому формат отображения может отличаться от используемого в коде.

Ответ №2:

Рассмотрите также функциональные формы CDate в формате ISO с датой ( YYYY-MM-DD HH:MM:SS ) или DateSerial для более полной поддержки дат в регионах с форматами первого дня (например, Великобритания) или первого месяца (например, США).

 WHERE finish_date BETWEEN CDate("2021-06-06") AND CDate("2021-06-10")
 
 WHERE finish_date BETWEEN DateSerial(2021, 6, 6) AND DateSerial(2021, 6, 10)