Based on the query you typed, it looks like your query string is a concatenation with the values entered, in which case you're already usign dynamic SQL. If not, then instead you could do something like this:

select count(emp_id)
from emp_main a, emp_info b
where (t1_Date between _start and _end
or _start is null or _end is null)
and (Account= _account or _account is null)
and (customer= _customer or _customer is null)
and a.emp_id=b.emp_id