Le estás dando demasiadas vueltas a algo en extremo simple.
Lo que planteas es:
Cita: Necesito conocer los empleados que se hayan dado de alta en la empresa hace menos de 3 años
¿Qué representa ese "hace menos de tres años?
Bueno, simplemente que, siendo hoy 24/05/2015, ese grupo estaría compuesto por todos aquellos empleados cuya fecha de alta es mayor a 24/05/2012...
O sea que no es muy complicado, aunque el mismo valor se puede obtener varias formas, con diferentes funciones. Pero hagamoslo por la vía simple.
Si FechaAlta es un datetime:
Si es un DATE:
Y esto es correcto desde el momento en que:
Código MySQL:
Ver original+------------+
| fecha |
+------------+
| 2012-05-24 |
+------------+