Supprimer une date antérieure à une autre [Résolu]

billou_13
Messages postés
874
Date d'inscription
jeudi 4 mars 2004
Dernière intervention
19 août 2014
- 14 mars 2005 à 10:57 - Dernière réponse : Egalon
Messages postés
126
Date d'inscription
lundi 26 avril 2004
Dernière intervention
17 juin 2011
- 12 sept. 2006 à 16:08
Bonjour,



Alors, voila je dois faire une requête SQL permettant de supprimer
toutes les informations d'une table où les dates seraient antérieures à
6 mois.



N'ayant pas de solution au premier abord, je me suis posé quelques questions :



- Ma date dans la table est au format Varchar (sous la forme
dd/mm/yyyy) . Je me demande si pour de tels calculs, je devrai pas
plutot mettre un format date dans la table.



- Ensuite, j'ai trouvée une solution mais je s'est pas si ça risque pas
de planter. Ayant ma date au format Varchar comme ci-dessus, je calcule
la date équivalente à 6 mois auparavent. Exemple, le 01/01/2005 et je
lance donc ma requete



DELETE FROM Informations WHERE Date<'01/01/2005' et ca marche !



Cool, mais je me demande si le fait de prendre une chaine inférieure à
une autre (vu que la date est au format Varchar) est un si bon calcul
que ca ? Ca ne risque pas de planter ?


Billou_13
Bask En Force
Afficher la suite 

Votre réponse

5 réponses

Meilleure réponse
ffert
Messages postés
63
Date d'inscription
samedi 18 janvier 2003
Dernière intervention
15 décembre 2009
- 19 mai 2005 à 15:28
3
Merci
je suis d'accord avec [auteurdetail.aspx?ID=439964 loyousse].... un format de date aurait été mieux... sinon peux-tu changer le formatage (chaine) de stockage de la date ???



car si tu peux... et bien en écrivant yyyy-mm-jj (ou yyyymmjj), alors tu pourras directement faire




DELETE FROM Informations WHERE Date < '2005-01-01'



et ce sera bien les bonnes dates qui seront effacée... .......Mais attention.. si ce champs contient des valeurs vides, elle seront également supprimées !!!!



j'espère que ça te conviens ...




Fabien FERT
www.sigmadia.fr.fm

Merci ffert 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 86 internautes ce mois-ci

Commenter la réponse de ffert
loyousse
Messages postés
198
Date d'inscription
jeudi 3 février 2005
Dernière intervention
16 décembre 2008
- 14 mars 2005 à 15:58
1
Merci
Moi j'ai fais la meme pour une date antérieur à 10jours et je l'ai fais
en php. Mes champ de dates sont de format date donc quand je met Date<'01/01/2005' ça risque pas de planter pour ton cas je ne sais pas...
Commenter la réponse de loyousse
billou_13
Messages postés
874
Date d'inscription
jeudi 4 mars 2004
Dernière intervention
19 août 2014
- 14 mars 2005 à 17:52
0
Merci
En fait, mon problème est que je voudrais rester en varchar pour la
date car le format date est différent suivant les SGBD alors que
Varchar restera Varchar ...



Alors, dans ce cas, je pensez ajouter dans la requête une fonction
existante sous Oracle qui est TODATE() permettant de retourner une date
a partir d'un Varchar. Seulement, je ne connais pas l'equivalent sous
SqlServer.



Si vous pouvez m'aider...



Bonne soirée


Billou_13
Bask En Force
Commenter la réponse de billou_13
billou_13
Messages postés
874
Date d'inscription
jeudi 4 mars 2004
Dernière intervention
19 août 2014
- 20 mai 2005 à 09:12
0
Merci
Ca me va parfaitement, je v mettre ça en pratique.

Merci à vous deux en bonne journée

Billou_13
Bask En Force

--------------------------------------------------------------------
Connaître la réponse est une chose, savoir pourquoi en est une autre
---------------------
Commenter la réponse de billou_13
Egalon
Messages postés
126
Date d'inscription
lundi 26 avril 2004
Dernière intervention
17 juin 2011
- 12 sept. 2006 à 16:08
0
Merci
Bonjour, j'avais le même problème avec MySQL, j'ai trouvé une solution sur :
http://dev.mysql.com/doc/refman/5.0/fr/date-and-time-functions.html
(spécifique à My SQL mais ca peut intéresser des gens)
qui propose:
SELECT quelquechose FROM nom_de_table
           WHERE TO_DAYS(NOW()) - TO_DAYS(date_col) <= 30;
pour 30 jours, ca marche aussi pour les delete.
Voili voilou .

Signé: Egalon qui comprend difficilement
Commenter la réponse de Egalon

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.