Ciò che fa effettivamente questa query è semplicemente generare molte date consecutive (fino a mille giorni precedenti).
In SQLite 3.8.3 o versioni successive, questo può essere fatto più facilmente con un'espressione ricorsiva comune tabella :
WITH RECURSIVE dates(d)
AS (VALUES('2010-01-20')
UNION ALL
SELECT date(d, '+1 day')
FROM dates
WHERE d < '2010-01-24')
SELECT d AS date FROM dates;