SQL – Estrarre i records degli ultimi X giorni da una tabella

E' possibile che sia necessario, se si hanno a disposizione tabelle contenenti un campo "Data", di tipo dati datatime, estrarre dalle relative tabelle solo i record degli ultimi X giorni, quindi di fatto costruire una query che faccia da filtro ai dati presenti nella tabella analizzata.

Per poter raggiungere questo obiettivo si può far ricorso alla seguente query:

SELECT DISTINCT Data
FROM   Reportistica.dbo.Tmp_daily
WHERE  Data >= DATEADD(d,-15,'2011-05-01')
ORDER BY Data DESC

La query non farà altro che selezionare tutti i record (risultati doppi esclusi) che rispettano la regola sul filtro degli ultimi 15 giorni. La "magia" è consentita dal porre un valore negativo al secondo parametro della funzione DATEADD, che di fatto sottrae alla data indicata come terzo parametro X giorni rappresentati, appunto, dal valore del secondo parametro.

Il primo parametro della funzione non fa altro che indicare che l'operazione avverrà sui giorni della data da analizzare.