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

Langage SQL Discussion :

Date de naissance selon age


Sujet :

Langage SQL

  1. #1
    Membre éprouvé Avatar de WDKyle
    Homme Profil pro
    Analyste-Programmeur
    Inscrit en
    Septembre 2008
    Messages
    1 200
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste-Programmeur

    Informations forums :
    Inscription : Septembre 2008
    Messages : 1 200
    Points : 962
    Points
    962
    Par défaut Date de naissance selon age
    Bonsoir,

    Pour un moteur de recherche interne à une application que je développe, j'ai besoin d'effectuer des recherches sur l'âge d'individus contenus dans une base de données.

    J'ai 2 types de "filtres" de recherche : Contient et Commence par avec des LIKE.

    Pour effectuer des recherches sur les dates de naissance c'est facile, mais pour en effectuer sur l'âge... cela se complique, car je n'ai pas l'âge des individus de stocké dans la base de données...

    Je cherche donc une fonction SQL pouvant effectuer un calcul pour ensuite renvoyer la liste des individus dont l'âge pourrait contenir ou commencer par exemple par '2'.

    Il faut pour cela, je pense, déduire l'âge des individus en fonction de leur date de naissance et la date actuelle mais là je coince totalement dans la mise en place de ce genre d'algorithme

    Auriez-vous une piste svp ?

    Merci à tous.

    EDIT :

    J'ai fait quelques test avec dans la clause WHERE, ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    FLOOR(DATEDIFF(day, Date_Naissance, getDate()) / 365.25) LIKE '%2%'
    Et cela me renvoie bien les individus ayant un '2' dans leur âge.

    Par contre, j'ai cru voir ici : http://blog.developpez.com/sqlpro/p1...-anniversaires

    Que FLOOR(DATEDIFF(day, Date_Naissance, getDate()) / 365.25) n'était pas assez précis mais je ne comprends pas bien quelles sont les dates indiquées dans l'exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    SELECT *
    FROM   T_PERSONNE_PRS
    WHERE          ((MONTH(PRS_DATE_NAISSANCE) -1 ) * 31 + (DAY(PRS_DATE_NAISSANCE) -1 ) ) % (31 * 12)
           BETWEEN ((MONTH('2013-11-20') - 1 )      * 31 + (DAY('2013-11-20') - 1) )       % (31 * 12)
               AND ((MONTH('2013-12-10') - 1 )      * 31 + (DAY('2013-12-10') + 371) )     % (31 * 12);
    Merci.

  2. #2
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Points : 13 092
    Points
    13 092
    Par défaut
    Bonjour,

    L'article que vous citez s'attache à faire des calculs sur les dates d'anniversaire, et donc à vérifier le jour/mois sans tenir compte de l'année.
    Vous, vous voulez simplement calculer l'âge en années (est-ce bien ça ?), ce qui s'écrit simplement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     (DATEDIFF(YEAR, Date_Naissance, getDate())
    Il ne vous reste qu'a transtyper en chaine de caractères pour le like :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    WHERE CAST(DATEDIFF(YEAR, Date_Naissance, getDate()) AS VARCHAR(3)) LIKE '%2%'

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

Discussions similaires

  1. Calculer L'age Exacte a partir de la date de naissance
    Par zoubazouba40 dans le forum Général Java
    Réponses: 3
    Dernier message: 07/02/2014, 19h01
  2. Calculer un age depuis une date de naissance
    Par pi-2r dans le forum Langage
    Réponses: 12
    Dernier message: 03/01/2011, 21h28
  3. Age à partir d'une date de naissance
    Par NABIL74 dans le forum Bases de données
    Réponses: 6
    Dernier message: 29/01/2009, 12h43
  4. Réponses: 4
    Dernier message: 14/11/2007, 11h07
  5. Requete a partir d'une date de naissance pour obtenir un age
    Par Fleur-Anne.Blain dans le forum Langage SQL
    Réponses: 11
    Dernier message: 10/08/2006, 12h40

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