This query would work on an Oracle database:
SELECT
invoice_number,
invoice_date,
invoice_date+30,
payment_date,
payment_date-invoice_date AS days_to_pay,
to_date(invoice_date, 'MM'),
to_date(invoice_date, 'YYYY')
FROM Invoices
WHERE to_char(to_date(invoice_date, 'MM')) = '05'
In fact, the operation with dates are allowed there (i.e. date+1 means "the day after the date"), and date1-date2 return the days between the two dates.