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

Meilleures réponses pour « [SQL] Date divisées ern 3 champ à comparer » dans :
Télécharger Database Editor VoirLa gestion de la base des données est une tâche complexe, généralement réservé aux utilisateurs expérimentés. Pour une tâche aussi spécifique, il faut des outils spécifiques. Database Editor est un outil permettant un accès rapide et facile à toutes...
SQL - Création de table VoirLe SQL, comportant un langage de définition de données (LDD), permet de créer des tables. Pour cela, il utilise le couple de mots clés CREATE TABLE. La création de tables Le création de tables se fait à l'aide du couple de mots-clés CREATE...
SQL - Tri VoirTri des résultats Il est possible en SQL d'organiser les résultats grâce à la clause ORDER BY. La clause ORDER BY est suivie des mots clés ASC ou DESC, qui précisent respectivement si le tri se fait de manière croissante (par défaut) ou...

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
Collection CommentÇaMarche.net