Cette requête va supprimer tous les enregistrements qui sont postérieurs à la date d'aujourd'hui, mais moins de 30 jours dans le futur. Vous pouvez remplacer "30" par une variable afin que vous puissiez déterminer combien de jours dans le futur à supprimer.
DELETE FROM Table
WHERE
TABDate > GETDATE() and TABDate < DATEADD(day, 30, GETDATE())
MISE À JOUR
Pour supprimer tous les enregistrements moins de 30 jours dans le passé, vous changeriez la requête pour ressembler à ceci:
DELETE FROM Table
WHERE
TABDate > DATEADD(day, -30, GETDATE()) AND TABDate < GETDATE()
Notez également que tous ces exemples sont en appelant GETDATE()
qui a aussi un composant de temps ainsi qu'une date, donc il faut prendre soin que chaque fois que vous voyez une déclaration comme < GETDATE()
vous ne supprimez pas simplement des enregistrements avec une date avant, par exemple, 2011-0 9-29, vous supprimez tous les enregistrements dont la date est antérieure à '2011-09-29 17:30'. Donc, soyez conscient de cela si vous dates de table contiennent également des temps.
comment le faire comme, moins de 30 jours dans le passé? écrit -30 devrait fonctionner? cela ne fonctionne pas pour moi – Sandy
juste essayer de mettre la date passée avant 'AND' et essayer .... –
SUPPRIMER À partir de la table O WH TABDate> DATEADD (jour, -30, GETDATE()) et TABDate