como dice movorack, podrias camniar la linea:
zquery1.Params.ParamByName('dia').Value := now;
por asDate o AsDatetime, y/o truncar la fecha para que no envie hora.
Código Delphi
[-]zquery1.Params.ParamByName('dia').AsDatetime:= Trunc(now);
zquery1.Params.ParamByName('dia').AsDate:= now;
La función no debería fallar asi. Si lo hace, lo que quiere decir que muy probablemente sea lo otro que comenta Movorack: ¿Que formato de fecha tienes en la tabla "feriado"?, si es texto, si vas a tener problemas si no coindicen los formatos.
Y por uñtimo seria bueno ver el mensaje de error, porque tu nos dices que hay un error pero el mensaje nos podria dar una pista.
saludo,