Précédent   Forum des professionnels en informatique > Bases de données > MySQL > Requêtes
Requêtes Forum d'entraide sur les requêtes MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 08/07/2011, 11h46   #1
Débutant
 
Inscription : avril 2005
Messages : 464
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 464
Points : 69
Points : 69
Par défaut Comparaison entre dates

Bonjour,

Je dois extraire des lignes dans une table qui comporte une colonne date à condition qu'elles soient comprises entre deux valeurs de dates.
Ca marche avec la condition :
Code :
colonne_date>="valeur1" AND colonne_date<="valeur2" ;
Maintenant, je veux que ça ne sorte que les lignes pour lesquelles l'année de la colonne date est la même que celle des deux valeurs.
En d'autres termes, je veux faire leur comparaison mais que leur année soit la même:

je pensais à ajouter :


Code :
year(colonne_date)=year(valeur1) AND year(colonne_date)=year(valeur2);
Est-ce qu'il y' a une autre méthode pour réaliser ça ?

Merci de votre aide
.

Cordialement
madina est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/07/2011, 12h00   #2
Expert Confirmé
 
Avatar de Maljuna Kris
 
Homme Avcxjo MoKo
Retraité
Inscription : novembre 2005
Messages : 2 530
Détails du profil
Informations personnelles :
Nom : Homme Avcxjo MoKo
Âge : 60

Informations professionnelles :
Activité : Retraité
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : novembre 2005
Messages : 2 530
Points : 3 523
Points : 3 523
Saluton,
Si je te suis, valeur1 et valeur2 sont des dates de la même année civile, donc les colonnes retenues qui doivent être comprises entre ces deux dates seront forcément de la même année.
Au passage j'aurais plutôt formuler cela avec BETWEEN
Code sql :
colonne_date BETWEEN "valeur1" AND "valeur2"
__________________
Kie lumo eksistas ankaŭ ombro troviĝas. L.L. Zamenhof
articles : Comment émuler un tableau croisé [quasi] dynamique
et : Une énigme mathématique résolue avec MySQL
recommande l'utilisation de PDO (PHP5 Data Objects)
Maljuna Kris est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/07/2011, 12h26   #3
Débutant
 
Inscription : avril 2005
Messages : 464
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 464
Points : 69
Points : 69
Bonjour Maljuna,

pas forcément de la même année civile .

l'année de la colonne peut différer de celle des deux valeurs.

Par exemple : je dois extraire toutes les lignes dont la date est comprises entre le 1er janvier 2011('2011-01-01') et le 30 mars 2011('2011-03-30').

Donc si je mets
Code :
colonne_date BETWEEN ('2011-03-30') AND '2011-03-30
.

Il ne me sortira pas une ligne qui a une date dans une année 2008 ? comme ( '2008-02-24') ou au delà de 2011. => ce que je ne veux pas

Et il me sortira bien une ligne comme date égale à la valeur de comparaison '2011-01-01' ?

C'est une compréhension de la fonction between par rapport aux opérateurs (<=, >=).

cordialement
madina est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/07/2011, 13h24   #4
Expert Confirmé
 
Avatar de Maljuna Kris
 
Homme Avcxjo MoKo
Retraité
Inscription : novembre 2005
Messages : 2 530
Détails du profil
Informations personnelles :
Nom : Homme Avcxjo MoKo
Âge : 60

Informations professionnelles :
Activité : Retraité
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : novembre 2005
Messages : 2 530
Points : 3 523
Points : 3 523
Je n'ai rien compris à ton dernier message .
Si tu veux une ligne avec colonne_date comprise entre le 1er janvier 2011('2011-01-01') et le 30 mars 2011('2011-03-30'), il faut faire
Code :
colonne_date BETWEEN '2011-01-01' AND '2011-03-30'
les bornes sont comprises dans l'intervalle.
__________________
Kie lumo eksistas ankaŭ ombro troviĝas. L.L. Zamenhof
articles : Comment émuler un tableau croisé [quasi] dynamique
et : Une énigme mathématique résolue avec MySQL
recommande l'utilisation de PDO (PHP5 Data Objects)
Maljuna Kris est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/07/2011, 13h48   #5
Débutant
 
Inscription : avril 2005
Messages : 464
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 464
Points : 69
Points : 69
Bonjour Maljuna

Voilà j'ai compris. Je voulais m'assurer que les bornes sont bien comprises dans l'intervalle;

et aussi si une date est dans une autre année différente de 2011, est ce que cette condition va le sortir ?

Je vois bien que non car c'est seulement les dates qui auront une année similaire à 2011 qui seront comprises entre les deux valeurs.


Merci beaucoup ça passe !

Cordialement et à bientôt.
madina est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 04h08.


 
 
 
 
Partenaires

Hébergement Web