Оператор выбора, не возвращающий строк - PullRequest
0 голосов
/ 01 февраля 2020

Меня попросили написать MYSQL код, который возвращает данные из определенных c дат (только 2003-2005 декабря) из моей базы данных. Однако я не могу понять, почему я не получаю никаких данных. Код, который я использую ниже. Я пытался использовать предложение BETWEEN, но я до сих пор не получил никаких данных. Любая помощь с благодарностью.

select 
paymentDate, amount, discounted
From 
payments
where 
paymentDate >= 2003-12-01 and paymentDate <= 2003-12-31
and paymentDate >= 2004-12-01 and paymentDate <= 2004-12-31
and paymentDate >= 2005-12-01 and paymentDate <= 2005-12-31
Order by paymentDate;

1 Ответ

0 голосов
/ 01 февраля 2020

Поскольку paymentDate не может быть одновременно в декабре каждого из этих лет.
Вместо этого соедините каждое из условных выражений декабря с or.
Также я включил синтаксис ANSI для дат, то есть date '2003-12-01'

where 
(paymentDate >= date '2003-12-01' and paymentDate <= date '2003-12-31'
 or paymentDate >= date '2004-12-01' and paymentDate <= date '2004-12-31'
 or paymentDate >= date '2005-12-01' and paymentDate <= date '2005-12-31')
...