Realmente dependes de las funciones de manejo de fechas de MySQL, Year() ya sabes que no existe, Extract(yaer from fecha) se que funciona en FireBird, pero no se si lo hara en MySQL, otra opcion sera usar:
where fecha between '01.01.2015' and '31.12.2015'
Pero de nuevo, el formato en el que MySQL espera encontrar las fechas no lo se, he puesto el de FireBird.
Como tampoco se utilizar MySQL, busqué si la función EXTRACT() sirve o no en ese motor, he mirado en una página de MySQL y ésto es lo que dice:
The EXTRACT() function uses the same kinds of unit specifiers as DATE_ADD() or DATE_SUB(), but extracts parts from the date rather than performing date arithmetic.
mysql> SELECT EXTRACT(YEAR FROM '2009-07-02');
-> 2009
mysql> SELECT EXTRACT(YEAR_MONTH FROM '2009-07-02 01:02:03');
-> 200907
mysql> SELECT EXTRACT(DAY_MINUTE FROM '2009-07-02 01:02:03');
-> 20102
mysql> SELECT EXTRACT(MICROSECOND
-> FROM '2003-01-02 10:30:00.000123');
-> 123
Enlace a la página
Supuestamente es compatible, habrá que esperar la retro-alimentación de
El_Chava
Saludos