I have a table containing data about events and festivals with following columns recording their start and end dates.
d
DateTime functions are your friends:
SELECT * FROM `event` WHERE (MONTH(NOW()) = MONTH(`Start_Date`)) AND (`End_Date` <= (NOW() + INTERVAL 30 DAY)) AND (YEAR(NOW()) = YEAR(`Start_Date`))