Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    Calcolare età in anni da data di nascita

    Salve a tutti.
    ho una tabella in mysql in cui c'è un campo data_nascita.
    Devo fare una interrogazione in cui calcolo da questa tabella il numero di persone che abbiano una età in anni uguale a un valore passato come parametro allo script php.

    ho provato cosi :
    Codice PHP:
    select count(distinct CF) as tot 
    from cittadini c 
    where year
    (datediff(curdate(),c.data_nascita))=".$eta 
    dove eta è il valore passato allo script e CF è il codice fiscale della persona

    il problema è che questa interrogazione da sempre risultati sbagliati perché la differenza è calcolata in giorni, come posso fare per ottenere il risultato in anni?

    ho provato anche con :
    Codice PHP:
    select count(distinct CF) as tot 
    from cittadini c 
    where year
    (curdate()-year(c.data_nascita)=".$eta 
    ma in questo caso mi conta anche le persone che nell'anno corrente nn hanno ancora compiuto gli anni

    come posso fare?

    grazie ciao ciao

  2. #2
    non conosco php, ma da quello che capisco la query fa la differenza dando "in output" il numero di giorni...
    naturalmente non si può fare un confronto tra giorni e anni...
    se in input hai l'età, perchè non trasformi l'età data in input in giorni?
    basta che moltiplichi l'età per 365...
    non saprei dirti in altro modo....
    stex1984

  3. #3
    Potresti usare una query tipo questa:

    codice:
    select count(distinct CF) as tot from cittadini WHERE DATE_ADD(data_nascita,INTERVAL 26 YEAR)<now()
    per sapere tutti quelli che hanno più di 26 anni compiuti (se metti il maggiore trovi quelli che ancora non hanno compiuto 26 anni

    oppure una come questa:

    codice:
    select count(distinct CF) as tot from cittadini DATE_ADD(data_nascita,INTERVAL 26 YEAR)<now() and year(data_nascita)=(year(now())-26)
    per trovare quelli che hanno esattamente quell'età (già compiuta)

    Purtroppo bisogna imparare che il computer non sbaglia...fa solo quello che gli dici di fare

    www.netpolaris.it

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.