ВЫБЕРИТЕ записи MySQL: между датой + 1 - PullRequest
1 голос
/ 06 мая 2011

Скажите, что я хочу ВЫБРАТЬ все записи между двумя датами плюс одна запись до и одна запись после этой даты?Все записи упорядочены по дате.

Ответы [ 4 ]

6 голосов
/ 06 мая 2011

Вы можете использовать объединение в сочетании с оператором лимита. Что-то вроде того, что ниже (не проверено, не имеет доступа к mysql).

(select column from table where datefield > startdate and datefield < stopdate)
union
(select column from table where datefield < startdate order by datefield desc limit 1)
union
(select column from table where datefield > stopdate order by datefield limit 1)

Это даст вам следующий ряд независимо от того, где он падает по дате.

Спасибо за исправление синтаксиса, пони.

2 голосов
/ 06 мая 2011
  (select * from t where date < start_date order by date desc limit 1)
  union (select * FROM t WHERE date between start_date and end_date)
  union (select * from t where date > end_date order by date asc limit 1)
0 голосов
/ 06 мая 2011

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

select * from table where field1 < ADDDATE(  CURTIME() , INTERVAL 1 DAY)

Проверьте эту ссылку , где есть несколько примеров.

0 голосов
/ 06 мая 2011
SELECT * 
  FROM table 
 WHERE date BETWEEN DATE_ADD(current_date(), INTERAL -1 DAY) 
                AND DATE_ADD(current_date(), INTERVAL 1 DAY);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...