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