#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)