Salve ragazzi,

sto facendo un piccolo sito per un amico che ha una villa che affitta ai turisti. Il sito oltre che sponsorizzare la struttura dovrà dare la possibilità ai visitatori di prenotarla. Il problema che ho è nel calcolo del preventivo, mi spiego:

Il prezzo della villa varia a seconda della stagione che si intende prenotare:
bassa stagione: dal 10 Gennaio al 29 Maggio, dal 27 Settembre al 18 Dicembre
media stagione: dal 30 Maggio al 26 Giugno, dal 30 Agosto al 26 Settembre
alta stagione: dal 27 Giugno al 29 Agosto, dal 19 Dicembre al 09 Gennaio

supponiamo che la villa costi: 500€/settimana in bassa stagione, 700€/settimana in media, 1000€/settimana in alta stagione.

Per gestire le stagioni ed i relativi prezzi (visto che nel corso del tempo potrebbero cambiare) ho creato la tabella "stagioni" così strutturata:
codice:
id_stagione (numerico)
nome (testo)
prezzo (numerico)
inizio1 (data)
fine1 (data)
inizio2 (data)
fine2 (data)
Nel caso della bassa stagione il record sarà:
codice:
id_stagione: 1
nome: bassa
prezzo: 500,00
inizio1: 2015-1-10
fine1: 2015-5-29
inizio2: 2015-9-27
fine2: 2015-12-18
La query che ho scritto per il calcolo della stagione è:
codice:
SELECT *
FROM stagioni
WHERE 'data_prenotata' BETWEEN inizio1 AND fine1
OR 'data_prenotata' BETWEEN inizio2 AND fine2
quindi, supponendo che un visitatore prenoti in data 15 marzo 2015 la query mi ritorna: bassa stagione. Corretto.

Il problema è per le prenotazioni fatte in vista dell'anno prossimo, per esempio se oggi un visitatore prenotasse per il 15 marzo 2016 la query non troverebbe alcuna stagione in quanto le date salvate sono tutte del 2015.

Come posso risolvere questo problemino? Esiste qualche funzione o qualche tipo di dato che mi permette di comparare 2 date senza tener conto dell'anno?

Ho cercato di spiegarmi meglio che potevo, spero che qualcuno possa aiutarmi
Grazie in anticipo!
Vincenzo