IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

[SQL] Obtenir la date la plus ancienne


Sujet :

PHP & Base de données

  1. #1
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2006
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2006
    Messages : 65
    Points : 59
    Points
    59
    Par défaut [SQL] Obtenir la date la plus ancienne
    Bonjour à tous,
    je suis en train de faire un site, et je voulais savoir s'il y a une fonction qui permet d'obtenir la date la plus ancienne.

  2. #2
    Membre expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Points : 3 212
    Points
    3 212
    Par défaut
    En SQL c'est le plus simple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECt MIN(champDate) from matable

  3. #3
    Membre régulier Avatar de Mat67
    Profil pro
    Étudiant
    Inscrit en
    Juin 2007
    Messages
    145
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2007
    Messages : 145
    Points : 118
    Points
    118
    Par défaut
    Ben sous sql tu peux faire une requete du style :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select MIN(date) from table_date;
    ou pour le max :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select MAX(date) from table_date;
    et apres il ne te reste qu'a récupérer tout sa sous php et le tour est joué

  4. #4
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2006
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2006
    Messages : 65
    Points : 59
    Points
    59
    Par défaut
    Oui c 'est bon ça marche!
    Merci !!!

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2011
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2011
    Messages : 8
    Points : 7
    Points
    7
    Par défaut 2eme valeur MIN(date) ?
    Slt,
    Je rebondis sur cette discussion pour avoir une précision
    Je recherche la 2eme valeur minimum. Une idée ?

  6. #6
    Membre expert
    Avatar de Dendrite
    Femme Profil pro
    Développeuse informatique
    Inscrit en
    Juin 2008
    Messages
    2 129
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 58
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeuse informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2008
    Messages : 2 129
    Points : 3 627
    Points
    3 627
    Billets dans le blog
    8
    Par défaut
    Essaie cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    select MIN(date) as avant_derniere
    from table_date
    where date > MIN(date);
    Question subsidiaire :
    De quel type est ta date ? date ou datetime ?
    Si date, tu peux avoir plusieurs dates pareilles... non ? Ex : si tu as 3 tuples le 21/03/2014, tu veux vraiment les enregistrements suivants, genre ceux du 03/04/2014 ?
    PDO, une soupe et au lit !
    Partir de la fin est un bon moyen de retrouver son chemin. Bibi - 2020

  7. #7
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Bonjour,

    @Dendrite
    Quand on utilise une fonction d'agrégation dans la filtre, on dois utiliser la clause HAVING à la place de where. Et même en utilisant une clause having avec ta requête, cela ne fonctionnera pas.

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    select la_date from la_table where la_date > 
    (select min(la_date) from la_table) order by la_date asc limit 1

    A+.

  8. #8
    Membre expert
    Avatar de Dendrite
    Femme Profil pro
    Développeuse informatique
    Inscrit en
    Juin 2008
    Messages
    2 129
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 58
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeuse informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2008
    Messages : 2 129
    Points : 3 627
    Points
    3 627
    Billets dans le blog
    8
    Par défaut
    Merki Andry !
    PDO, une soupe et au lit !
    Partir de la fin est un bon moyen de retrouver son chemin. Bibi - 2020

  9. #9
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    On utilise HAVING pour la ou les filtre(s) avec agrégation, les restes dans le WHERE. Même si on peut utiliser having à la place de where, ce qui n'est pas bon dans la pratique, ce que je disais tout à l'heure présente une ambiguïté.

  10. #10
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2011
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2011
    Messages : 8
    Points : 7
    Points
    7
    Par défaut
    Citation Envoyé par andry.aime Voir le message
    Bonjour,

    @Dendrite
    Quand on utilise une fonction d'agrégation dans la filtre, on dois utiliser la clause HAVING à la place de where. Et même en utilisant une clause having avec ta requête, cela ne fonctionnera pas.

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    select la_date from la_table where la_date > 
    (select min(la_date) from la_table) order by la_date asc limit 1

    A+.
    Je viens de tester, ça à l'air de fonctionner comme il faut. Que ce soit avec WHERE ou HAVING
    Ma base de test me répond ce que j'attendait

  11. #11
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Citation Envoyé par zazadec Voir le message
    Je viens de tester, ça à l'air de fonctionner comme il faut. Que ce soit avec WHERE ou HAVING
    Ma base de test me répond ce que j'attendait
    Oui, mais l'utilisation de HAVING dans ce cas te pénalisera côté performance. Ensuite l'utilisation de HAVING n'est possible à la place de WHERE que si la colonne à comparer dans le HAVING est parmi les colonnes à récupérer dans le select.

    A+.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [CR 2008] Comment trouver la date la plus ancienne
    Par campia dans le forum SAP Crystal Reports
    Réponses: 1
    Dernier message: 09/12/2009, 15h09
  2. SQL:Obtenir la date du 3ème dimanche de chaque mois
    Par twixi dans le forum Langage SQL
    Réponses: 6
    Dernier message: 10/04/2009, 10h38
  3. Rechercher la date la plus ancienne
    Par Syrya dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 28/04/2008, 16h17
  4. Sélectionner Date la plus ancienne
    Par guigui11 dans le forum MS SQL Server
    Réponses: 11
    Dernier message: 07/06/2007, 16h28
  5. [XI]Date la plus ancienne
    Par fan_de_crystal dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 04/05/2007, 16h14

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo