Предполагам, че използвате Oracle. Ако е така, DATE типът данни съдържа времеви компонент. Това е доста объркващо. Но можете да правите каквото искате, като използвате TRUNC() вместо 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';
Обърнете внимание и на предпочитанията за стандартни дати на ANSI и псевдоними на таблици.