Между оператором для сравнения дат не работает должным образом в запросе MS Access DB - PullRequest
0 голосов
/ 11 февраля 2020

У меня есть простой запрос как

Select *
from myTable tran

Where  tran.Party = 13  
AND  
Format(TransactionDate,'dd-mmm-yyyy') BETWEEN #07-Jan-2020# AND #11-Feb-2020# 

, который возвращает только одну запись с датой транзакции "07-Jan-2020", а не другие записи, попадающие между этими датами.

Обновление

enter image description here

Обновление 2:

Вместо оператора между, если я использую Оператор 'Greater Than' && 'Less Than':

Select * from CylinderTransactions tran

Where  tran.Party = 13  AND
Format(TransactionDate,'dd-mm-yyyy') >= #07-Jan-2020# 
AND Format(TransactionDate,'dd-mm-yyyy') <= #11-Feb-2020# 

Чем он получает 3 записи, одну с 7 января и 2 с 11 февраля, но еще одну запись 15 января (см. Предыдущий снимок фактических данных .

1 Ответ

1 голос
/ 11 февраля 2020

Фильтруйте само значение даты и никогда не используйте буквальные месяцы:

Where  
    tran.Party = 13  
    AND
    TransactionDate BETWEEN #2020/01/07# AND #2020/02/11# 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...