[slq] supprimer ligne en fonction d'une date
Fermé
DaRenzo
-
23 janv. 2011 à 18:40
Jean_Jacques Messages postés 1040 Date d'inscription mercredi 30 avril 2008 Statut Membre Dernière intervention 1 août 2014 - 24 janv. 2011 à 06:40
Jean_Jacques Messages postés 1040 Date d'inscription mercredi 30 avril 2008 Statut Membre Dernière intervention 1 août 2014 - 24 janv. 2011 à 06:40
A voir également:
- [slq] supprimer ligne en fonction d'une date
- Supprimer une page word - Guide
- Supprimer compte instagram - Guide
- Fonction si et - Guide
- Vente en ligne particulier - Guide
- Partage de photos en ligne - Guide
3 réponses
Bonsoir,
peut être comme ça (je ne connais pas ta base):
sous Acces on écrierai:
peut être comme ça (je ne connais pas ta base):
DELETE * FROM historique WHERE date_hist <= CURRENT_DATE - INTERVAL 10 DAY
sous Acces on écrierai:
DELETE * FROM historique WHERE date_hist <= FormatDateTime(now()-10)
jee pee
Messages postés
39611
Date d'inscription
mercredi 2 mai 2007
Statut
Modérateur
Dernière intervention
23 avril 2024
9 230
Modifié par jee pee le 23/01/2011 à 21:19
Modifié par jee pee le 23/01/2011 à 21:19
Salut,
Je ne connais pas particulièrement la syntaxe que tu utilises (le CURRENT_DATE - INTERVAL 10 DAY). C'est sur quel SGBD ?
Mais je mettrais plutot : date_hist =(SELECT dat_hist FROM car le * ramène tous les champs de la table donc pas d'equalité avec une date ;-)
Et pour moi il doit y avoir une syntaxe plus simple comme :
DELETE * FROM historique WHERE date_hist <= (CURRENT_DATE - INTERVAL 10 DAY)
Pas besoin d'une sous requete
cdlt
Un étranger, c'est un ami qu'on n'a pas encore rencontré.
Je ne connais pas particulièrement la syntaxe que tu utilises (le CURRENT_DATE - INTERVAL 10 DAY). C'est sur quel SGBD ?
Mais je mettrais plutot : date_hist =(SELECT dat_hist FROM car le * ramène tous les champs de la table donc pas d'equalité avec une date ;-)
Et pour moi il doit y avoir une syntaxe plus simple comme :
DELETE * FROM historique WHERE date_hist <= (CURRENT_DATE - INTERVAL 10 DAY)
Pas besoin d'une sous requete
cdlt
Un étranger, c'est un ami qu'on n'a pas encore rencontré.
Jean_Jacques
Messages postés
1040
Date d'inscription
mercredi 30 avril 2008
Statut
Membre
Dernière intervention
1 août 2014
112
24 janv. 2011 à 06:40
24 janv. 2011 à 06:40
Bonjour DaRenzo,
Voici une syntaxe SQL sous ACCESS 2000 qui a fait ses preuves pour supprimer les enregistrements de plus d'un an.
Avec un petit message d'alerte .....
Il suffit d'adapter le tout à votre contexte et de remplacer la valeur 365 par celle de votre choix.
If MsgBox("Confirmez-vous la suppression ?", vbQuestion + vbYesNo) = vbNo Then Exit Sub
DoCmd.RunSQL "DELETE Transactions.RéfTransaction, Transactions.RéfValeur, Transactions.RéfOpération, Transactions.RéfStatut, Transactions.DateSaisie, Transactions.DateLimite, Transactions.DateSolde, DateDiff('d',[datesolde],Now()) AS [Délai dépassé ] FROM Transactions WHERE (((DateDiff('d',[datesolde],Now()))>365));"
Cordialement
Voici une syntaxe SQL sous ACCESS 2000 qui a fait ses preuves pour supprimer les enregistrements de plus d'un an.
Avec un petit message d'alerte .....
Il suffit d'adapter le tout à votre contexte et de remplacer la valeur 365 par celle de votre choix.
If MsgBox("Confirmez-vous la suppression ?", vbQuestion + vbYesNo) = vbNo Then Exit Sub
DoCmd.RunSQL "DELETE Transactions.RéfTransaction, Transactions.RéfValeur, Transactions.RéfOpération, Transactions.RéfStatut, Transactions.DateSaisie, Transactions.DateLimite, Transactions.DateSolde, DateDiff('d',[datesolde],Now()) AS [Délai dépassé ] FROM Transactions WHERE (((DateDiff('d',[datesolde],Now()))>365));"
Cordialement