Rechercher : dans
Par :

[SQL] Date divisées ern 3 champ à comparer

Dernière réponse le 18 jui 2007 à 15:10:04 Moriar, le 18 jui 2007 à 11:28:57 
 Signaler ce message aux modérateurs

Bonjour !

Je cherche de l'aide pour un probleme assez épineux.

Je dois traiter les données d'une base MySQL qui contient entre autre des dates.
Ces dates sont au format JJ/MM/AA mais les jours les mois et les années sont tous dans des champs différents (je me retrouve donc avec une date stoquée en 3 nombres dans des champs distincts).

J'ai eu beau me pêter la tête dessus je n'ai pas trouvé le moyen de rassembler ces 3 champs au format date pour les comparer à une date fournie par l'utilisateur (tout ça en une requete SQL bien sur).

Bien sur j'ai déjà trouvé un moyen de traiter ça aprés la requete via PHP mais cette solution est assez lourde et ne sera peut être plus utilisable quand il me faudra étendre mon outil.

Merci d'avance pour vôtre aide.

Configuration: Windows 2000
Internet Explorer 6.0

1

A.Nonymous, le 18 jui 2007 à 12:34:39

SELECT * FROM table WHERE NOW() > CONCAT(table.annee,'-',table.mois,'-',table.jour);

Répondre à A.Nonymous

2

Moriar, le 18 jui 2007 à 12:45:54

En fait je reçois les dates à comparée à celle de la BDD via un formulaire.

Mais si je fais SELECT *
FROM TABLE
WHERE CONCAT('$annee','-','$mois','-','$jour') > CONCAT(table.annee,'-',table.mois,'-',table.jour)

Ca passerait comparerait ces deux concaténation comme étant des dates ?

Répondre à Moriar

3

Reivax962, le 18 jui 2007 à 13:47:48

Non, effectivement dans ces conditions il faut obligatoirement caster.
Mais là, la syntaxe dépend pas mal de ton sgbd...
Sur du sql server, voilà la façon de procéder : http://msdn2.microsoft.com/en-us/library/ms187928.aspx
Sur du mysql, CAST(CONCAT(...) AS DATETIME) devrait convenir.

Répondre à Reivax962

4

Moriar, le 18 jui 2007 à 14:12:08

J'ai essayé ça n'a pas l'air de fonctionner ....

C'est assez problematique, vu que je viens de me rendre compte que le systeme que j'avais mis en place via php fait la différence entre 7 et 07.

Répondre à Moriar

5

 Moriar, le 18 jui 2007 à 15:10:04

J'ai un peut avancé de mon côté et même si ça ne se fait pas dans la requete SQL le traitement est correct (et me convient).

Merci quand même pour votre précieuse aise.

Répondre à Moriar