Domyślam się, że używasz Oracle. Jeśli tak, DATE typ danych zawiera składnik czasu. To jest dość mylące. Ale możesz robić, co chcesz, używając TRUNC() zamiast CAST() :
SELECT TRUNC(HOLIDAY_DATE), DATE '2011-04-16' --into DAY_COUNT
FROM ATL_JOB_HOLIDAY jh JOIN
ATL_MASTER_JOB mj
ON mj.MASTER_JOB_ID = jh.MASTER_JOB_ID
WHERE TRUNC(HOLIDAY_DATE) = DATE '2011-04-16';
Zwróć także uwagę na preferencje dotyczące standardowych dat ANSI i aliasów tabel.