Dimenticavo.... per il tuo errore.
Certamente dipende dall'ora legale. Quel giorno le ore sono 25 e non 24. In pratica, almeno credo in base al tuo script, dovresti trovare 2 volte il 31 ottobre e mancare l'ultima data.... A meno che il range non si prolunghi oltre la fine del marzo successivo, dove con la perdita di un'ora tornerebbe normale.
Ed era proprio per questa ragione che avevo contato i giorni con mysql.
![]()