By using db<>fiddle, you agree to license everything you submit by Creative Commons CC0.
WITH RECURSIVE
source_table AS (
SELECT 'One' name, 100 int_value, '2013-11-16' start, '2014-11-16' `end`
),
cte AS ( SELECT name, int_value, start, `end`,
1 rownum, DATE_FORMAT(start, '%m-%Y') x
FROM source_table
UNION ALL
SELECT name, int_value, start, `end`,
1 + rownum, DATE_FORMAT(start + INTERVAL rownum MONTH, '%m-%Y')
FROM cte
WHERE start + INTERVAL rownum - 1 MONTH < `end` )
SELECT name, int_value, start, `end`, x
FROM cte
ORDER BY rownum;
name | int_value | start | end | x |
---|---|---|---|---|
One | 100 | 2013-11-16 | 2014-11-16 | 11-2013 |
One | 100 | 2013-11-16 | 2014-11-16 | 12-2013 |
One | 100 | 2013-11-16 | 2014-11-16 | 01-2014 |
One | 100 | 2013-11-16 | 2014-11-16 | 02-2014 |
One | 100 | 2013-11-16 | 2014-11-16 | 03-2014 |
One | 100 | 2013-11-16 | 2014-11-16 | 04-2014 |
One | 100 | 2013-11-16 | 2014-11-16 | 05-2014 |
One | 100 | 2013-11-16 | 2014-11-16 | 06-2014 |
One | 100 | 2013-11-16 | 2014-11-16 | 07-2014 |
One | 100 | 2013-11-16 | 2014-11-16 | 08-2014 |
One | 100 | 2013-11-16 | 2014-11-16 | 09-2014 |
One | 100 | 2013-11-16 | 2014-11-16 | 10-2014 |
One | 100 | 2013-11-16 | 2014-11-16 | 11-2014 |