Umieść wartości dat w pojedynczych cudzysłowach, ponieważ są to dosłowne ciągi, w przeciwnym razie MySQL nie będzie w stanie stwierdzić, że jest to data, a nie liczba (2011 MINUS 1 MINUS 1 =2009).
Nie potrzebujesz też rzutów DATE() wokół nich.
SELECT
*
FROM
shortleavedetails
WHERE
employee_code = '17'
AND
(DATE(authorizeddate) <= '2011-01-01'
AND
DATE(authorizeddate) >= '2010-05-01')