Is there a way to generate dates between date ranges. After looking on SO I found out there is a way to use CTE, another option is to use Union All from 0 to 9. Is there an inbuilt function which I can use to generate dates between date range?

We are using MySQL 8.0.

  • 1
    Is there an inbuilt function No. For your version - use recursive CTE.
    – Akina
    Dec 5, 2018 at 9:42
  • Moreover, there is no table data type, so both any built-in function and possibility to create user-definad function with the output of table-type not exists.
    – Akina
    Dec 5, 2018 at 9:56
  • 1
    (MariaDB has sequence-generating pseudo-tables.)
    – Rick James
    Dec 5, 2018 at 16:41

1 Answer 1


I tried this solution :

WITH recursive Date_Ranges AS (
    select '2018-11-30' as Date
   union all
   select Date + interval 1 day
   from Date_Ranges
   where Date < '2018-12-31')
select * from Date_Ranges;

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.