MySQL using BETWEEN comparison with NULL
IFNULL
might help out here:
WHERE A.event_date BETWEEN IFNULL(B.start_date,"1900-01-01")
AND IFNULL(B.end_date,now());
The COALESCE() function will return the first non-null value in the parameter list. Give this a try:
WHERE A.event_date BETWEEN COALESCE(B.start_date,'1900-01-01') and COALESCE(B.end_date,CURRENT_TIMESTAMP)