Mysql /select日期以外指定的两个日期范围


mysql/select dates outside specified two date range

我应该使用什么查询来获得两个给定日期之外的日期列表(这是来自表中保存的数据)。date1 date2)

例如,如果表日期为

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

输出应该是date1到date2之外的日期,如:2016-9-4,2016-9-3…等等......还有2016-9-11、2016-9-12……2016-9-16等

我使用的数据类型是date

无法从表中获取外部日期,因为表中没有外部日期。但是你可以编写程序来获取外部日期。从表和

中调用date1和date2
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

这些语句有效