mysql/php - выбрать даты за пределами указанного диапазона двух дат

Какой запрос я должен использовать, чтобы получить список дат вне двух данных дат (который исходит из сохраненных данных в таблице, например, date1 date2)

например, если таблицы дат

date1    |date2
2016-9-5 |2016-9-10
2016-9-13|2016-9-15

выходные данные должны быть датами вне даты1 до даты2, например: 2016-9-4, 2016-9-3... и так далее. и 2016-9-11, 2016-9-12... 2016-9-16 и т. д.

тип данных, который я использую - дата

2 ответа

Вы не можете получить внешние даты из таблицы, потому что в таблице нет внешних дат. Но вы можете написать программу, чтобы получить внешние даты. Назовите дату1 и дату2 из таблицы и

List<Date> dates = new ArrayList<Date>();
Date date = date1;
for (int i = 0; i < MAX_RESULT && !date.after(date2): i++) {
  date = DateUtils.addDays(date, 1);
  dates.add(date);
}

Вы можете сделать что-то вроде этого (просто пример, так как вы не предоставили структуру таблицы и желаемый результат):

SELECT date FROM table where date<date1 AND date>date2

это выберет все строки, которые не находятся между date1 и date2

SELECT date FROM table WHERE date BETWEEN date1 AND date2

это выберет все строки, которые находятся между date1 и date2.

Эти заявления действительны, если date1<date2

Другие вопросы по тегам