Was diese Abfrage tatsächlich macht, ist nur das Generieren vieler aufeinanderfolgender Daten (bis zu tausend Vortage).
In SQLite 3.8.3 oder höher kann dies einfacher mit einem rekursiven allgemeinen Tabellenausdruck :
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;