Opérations sur des dates - SQL/NoSQL - Programmation
Marsh 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'
Marsh Posté le 25-03-2003 à 11:07:03
vttman2 a écrit : SELECT madate FROM temp1 |
tu peux expliquer le "mid$" stp??
Marsh Posté le 25-03-2003 à 13:03:35
kamui36 a écrit : |
Mid$(chaine , position de départ, longueur)
si madate contient '21.04.2003'
Mid$(madate,7,4) contiendra '2003'
Marsh 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...
Marsh Posté le 26-03-2003 à 08:35:28
jodalton a écrit : 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. |
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!
Marsh 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)
Marsh Posté le 26-03-2003 à 08:48:48
Urd-sama a écrit : oui, revois ta base de données c'est beaucoup mieux! |
hihi....c'est bon je viens d'essayer year et ca fonctionne! J'avais déjà essayé mais je l'avais mis comme critère...^.^
Comme je suis bête! lol
Merci Urd!
Marsh Posté le 26-03-2003 à 09:00:17
de rien
a cet aprèm
Marsh Posté le 25-03-2003 à 10:11:34
Bonjour!
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