Как сгенерировать все даты между двумя датами

Как я могу получить все даты между «2015-10-02» и «2015-11-02» в SQLite? (Тип строки) Результат будет таким:

'2015-10-03'
'2015-10-04'
'2015-10-05'
...
'2015-11-01'

Это не вопрос о SELECT * FROM myTable where myDate <= '2015-01-01' AND myDate >= '2015-01-31'. Речь идет не о выборе всех существующих записей, в которых есть поле между двумя днями. Я просто хочу получить все возможные значения даты между двумя датами. Я хочу использовать их для запроса количества записей по дням.

Date             Count
'2015-01-01'      19
'2015-01-02'      10
'2015-01-03'      0
...

person Andiana    schedule 07.10.2015    source источник
comment
Возможный дубликат дат сравнения SQLite   -  person David Ferenczy Rogožan    schedule 07.10.2015
comment
stackoverflow.com/questions/7812986/ выглядит актуальным, но я не в курсе возможных различий в диалектах между SQL Server и SQLite.   -  person Nathan Tuggy    schedule 07.10.2015
comment
Пожалуйста, ознакомьтесь с ответом, приведенным ниже, спасибо.   -  person Tim Biegeleisen    schedule 07.10.2015


Ответы (1)


Это невозможно без рекурсивного общего табличного выражения, которое было введено в SQLite 3.8.3:

WITH RECURSIVE dates(date) AS (
  VALUES('2015-10-03')
  UNION ALL
  SELECT date(date, '+1 day')
  FROM dates
  WHERE date < '2015-11-01'
)
SELECT date FROM dates;
person CL.    schedule 07.10.2015
comment
Это то, что я искал. Спасибо большое - person Andiana; 08.10.2015