Buon giorno, ho delle news che a seconda di alcune date, restano visibili o meno.
Ho 3 date da gestire: DtScadenza, DtScadenzaRettifica, DtScadenzaEsito

Appena pubblico la news DtInsert "2018-02-02 08:00:00",
inserisco anche la data DtScadenza "2018-03-01 12:00:00",
nel caso in cui, dovesse esserci un ripensamento sulla pubblicazione, viene indicata una nuova data di scadenza DtScadenzaRettifica "2018-04-01 12:00:00".

Una volta scaduta, la news va a finire nello storico per un massimo di 6 mesi, dopodichè, non sono più visibili, a meno che, nel frattempo, non venga valorizzato il campo DtScadenzaEsito "2018-10-04 12:00:00".
Una volta passata anche questa data, la news non è più visibile neanche nello storico.

Ho previsto questa query:
codice:
SELECT * FROM TBNEWS WHERE Tipologia ='generica' AND (NOW() >= DtScadenza) AND (NOW() >= DtScadenzaRettifica) AND (case when DtScadenzaEsito <> '0000-00-00 00:00:00' then (NOW() <= DtScadenzaEsito) else NOW() >= DtScadenza end) AND (TIMESTAMPDIFF(MONTH,DtScadenza, now())<=6 || TIMESTAMPDIFF(MONTH,DtScadenzaRettifica, now())<=6) AND Intranet = 1 ORDER BY DtInsert DESC
Ma funziona, fino ad un certo punto.
Nel senso, se trova ancora entro i 6 mesi, sia la DtScadenzaRettifica che DtScadenzaEsito, prevale sempre DtScadenzaRettifica.
Cosi come dovrebbe scadere al giorno e sopratutto all'ora stabiliti 2018-04-01 12:00:00, alle 12 deve sparire.

Mi aiutate per favore?
Grazie mille.