Setzen Sie Ihre Datumswerte in einfache Anführungszeichen, da es sich um wörtliche Zeichenfolgen handelt, sonst kann MySQL nicht erkennen, dass es sich um ein Datum und nicht um die Zahl handelt (2011 MINUS 1 MINUS 1 =2009).
Sie brauchen auch keine DATE()-Casts um sie herum.
SELECT
*
FROM
shortleavedetails
WHERE
employee_code = '17'
AND
(DATE(authorizeddate) <= '2011-01-01'
AND
DATE(authorizeddate) >= '2010-05-01')