Its not pretty but it works
(date time being '2017-04-06')
SELECT CONCAT(year('2017-04-06' + INTERVAL -3 MONTH + INTERVAL -5 DAY),'-',YEAR('2017-04-06' + INTERVAL -3 MONTH + INTERVAL -5 DAY)+1) as tax_year
CREATE FUNCTION taxyear (d DateTime)
RETURNS CHAR(9) DETERMINISTIC
RETURN CONCAT(year(d + INTERVAL -3 MONTH + INTERVAL -5 DAY),'-',YEAR(d + INTERVAL -3 MONTH + INTERVAL -5 DAY)+1);
select TAXYEAR('2017-04-06');