пытаясь получить членов диапазона дат - PullRequest
0 голосов
/ 08 августа 2011

Я пытаюсь получить данные об участниках, которым не выплачивается данный диапазон дат, например ((Givendate + 8, Givendate + 30), вот так. Мне нужны такие данные, как члены, которым не выплачиваются эти даты(((givendate + 8, givendate + 30))

вот так, если дано: (1-09-2008) я хочу такой диапазон дат (08-09-2008, 30-09-2008)

я сделал

WHERE  DATE_ADD(memberpaysched.memberPaySched_dateDue,DATE_DIFF((ADDDATE(memberpaysched.memberPaySched_dateDue, 8)),(ADDDATE(memberpaysched.memberPaySched_dateDue,30))) )< NOW()

ПРИМЕЧАНИЕлюбой пожалуйста дайте представление об этом

Ответы [ 3 ]

1 голос
/ 08 августа 2011

Попробуйте вместо этого:

WHERE 
  memberpaysched.memberPaySched_dateDue BETWEEN 
    CURDATE() + INTERVAL 8 DAY 
    AND CURDATE() + INTERVAL 30 DAY
1 голос
/ 08 августа 2011

Сохраняйте это простым и максимально приближенным к тому, как вы бы выразили это на английском языке:

WHERE memberPaySched_dateDue between ADDDATE(NOW(), 8) and ADDDATE(NOW(), 30)

или если у вас есть конкретная дата вместо now():

WHERE memberPaySched_dateDue between ADDDATE('2011-09-01', 8) and ADDDATE('2011-09-01', 30)

Обратите внимание, что, поскольку два значения диапазона постоянны во время выполнения, это будет производительным (в отличие от вашего кода, который принудительно вычислял каждую строку)

1 голос
/ 08 августа 2011
...
where
memberPaySched_dateDue
between '2008-09-01' + interval 7 day and '2008-09-01' + interval 29 day
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...