J'ai un problème de date dans ma base de donnée (ACCESS97). Je traite des dates de contract d'apprentis (ex: "Du 01.07.2003 au 21.08.2007" ) Ce champs, qui contient deux dates en fait, est un champ texte. Mais maintenant j'aimerais savoir qui des apprentis est en première année, en deuxième,en troisième et en quatrième.
La je bloque complétement...
Je me dis qu'il faudrait que je recréer mon champ "contrat" en numérique pour que après, je puisse calculer l'année...mais bon je ne sais pas du tout comment faire.
Même pour calculer l'année...
Vous pouvez m'aider?????
Merci
Publicité
Posté le 25-03-2003 à 10:11:34
vttman2
Je suis Open ...
Posté le 25-03-2003 à 10:45:14
Si tes dates sont stockées sous forme de chaines
de caractères style 15.02.2002, tu peux
faire un truc dans ce style là ...
SELECT madate FROM temp1
where mid$(madate,7,4)&mid$(madate,4,2)&mid$(madate,1,2) between '20030212' and '20030213'
Mid$(chaine , position de départ, longueur)
si madate contient '21.04.2003'
Mid$(madate,7,4) contiendra '2003'
jodalton
Posté le 25-03-2003 à 13:19:12
Le mieux étant de revoir plutôt la table pour stocker les dates dans des champs de type DATE (ou équivalent, je connais pas Access). Avec par ex 2 champs dateDebut et dateFin.
A partir de là il doit exister plein de fonctions permettant de faire des traitement sur ces dates (entre autre de les comparer facilement "date1 < date2" ).
Cela permet de s'affranchir du problème des chaines de caractère (si jamais elles n'ont pas toutes le même format), d'être plus propre et de gagner en rapidité (ce qui n'est peut-être pas essentiel dans ton cas).
Après il faut voir si ça vaut le coup de tout refaire...
Le mieux étant de revoir plutôt la table pour stocker les dates dans des champs de type DATE (ou équivalent, je connais pas Access). Avec par ex 2 champs dateDebut et dateFin.
A partir de là il doit exister plein de fonctions permettant de faire des traitement sur ces dates (entre autre de les comparer facilement "date1 < date2" ).
Cela permet de s'affranchir du problème des chaines de caractère (si jamais elles n'ont pas toutes le même format), d'être plus propre et de gagner en rapidité (ce qui n'est peut-être pas essentiel dans ton cas).
Après il faut voir si ça vaut le coup de tout refaire...
Tu as raison...je vais m'orienté dans ce sens...
Mais j'aurais encore une question: Quand on a une date (dans un format date) comme 18.05.2002, comment "couper" la date pour n'avoir que l'année (2002)???
Merci beaucoup!
urd-sama
waste of space
Posté le 26-03-2003 à 08:36:50
oui, revois ta base de données c'est beaucoup mieux!
pour extraire l'année, je pense que c'est year(champ_date)
---------------
.: Clône de Drasche .:. Ebichuleys .:. Avec l'Aloe Vera je fais de beaux cacas [:dawa] .: www.oserselancer.com :.