• User

    Eseguire un SELECT con range data ultimi 30 giorni?

    ciao tutti,
    ho una tabella con vari campi ed anche un campo data.

    vorrei scrivere una query che mostri solo i record degli ultimi 30 giorni.
    ho cercato in google ma ho trovato solo un metodo che mi obbliga ad inserire una dataINIZIO e una dataFINE.

    io invece non vorrei specificare INIZIO e FINE, vorrei una query che partisse dalla data corrente (del momento in cui si esegue la query) e vada indietro di 30 giorni.

    in questo modo non devo ogni giorno impostare a mano i valori INIZIO e FINE ma la query prenderà sempre gli ultimi 30 giorni.

    potete aitarmi?
    ciao


  • User

    Ho trovato questa soluzione:

    assegno alla variabile $unmesefa la data di OGGI-30giorni:
    [php]
    $unmesefa = date ("Y-m-d", mktime(0,0,0,date("m"),date("d")-30,date("Y")));
    [/php]

    eseguo la query così:

     
    $sql= @mysql_query("SELECT * FROM tabella WHERE data >= '$unmesefa'");
    
    

    vengono quindi mostrati i record con data entro gli ultimi 30 giorni.

    Può andare o ci sono metodi piu validi?


  • Super User

    ciao,
    si il metodo che hai indicato è formalmente corretto. Se vuoi ottenere eventuali record che hanno una data più recente di 30 giorni fa va benissimo.

    mi pareva ci fosse un modo per fare il giochino delle date direttamente nella stringa sql ma ho fatto un paio di prove e non ci sono riuscito.

    il manuale di mysql parla della funzione getdate(), prova, se hai voglia, a scoprire qualcosa in più 🙂