Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it L'avatar di pgm
    Registrato dal
    Apr 2002
    Messaggi
    1,281

    selezionare record in formato unix_timastamp

    ciao a tutti

    ho il seguente problema. devo selezionare i record, contraddistinti da un campo data in unix_timestamp, dalla data odierna a date variabili passate come ad esempio 3 mesi,4 messi o 1 anno fa.

    come posso fare?


  2. #2

    Re: selezionare record in formato unix_timastamp

    Originariamente inviato da pgm
    ciao a tutti

    ho il seguente problema. devo selezionare i record, contraddistinti da un campo data in unix_timestamp, dalla data odierna a date variabili passate come ad esempio 3 mesi,4 messi o 1 anno fa.

    come posso fare?

    $num_month = 3;

    SELECT * from tabella
    where FROM_UNIXTIME(data) <= NOW() - INTERVAL $num_month MONTH

    in questo caso ti trova i record dove la data e' uguale o minore di oggi (now()) - 3 mesi. Quindi piu' vecchia di tre mesi.


    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  3. #3
    Utente di HTML.it L'avatar di pgm
    Registrato dal
    Apr 2002
    Messaggi
    1,281

    Re: Re: selezionare record in formato unix_timastamp

    Originariamente inviato da piero.mac
    $num_month = 3;

    SELECT * from tabella
    where FROM_UNIXTIME(data) <= NOW() - INTERVAL $num_month MONTH

    in questo caso ti trova i record dove la data e' uguale o minore di oggi (now()) - 3 mesi. Quindi piu' vecchia di tre mesi.

    grazie mille

  4. #4
    Utente di HTML.it L'avatar di pgm
    Registrato dal
    Apr 2002
    Messaggi
    1,281
    la query non mi estrae niente

    forse perchè il campo data è in formato int(10) unsigned?

    :master:

  5. #5
    Originariamente inviato da pgm
    la query non mi estrae niente

    forse perchè il campo data è in formato int(10) unsigned?

    :master:
    Quali sono le date che hai inserito??? prova a postare la tua query.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  6. #6
    Utente di HTML.it L'avatar di pgm
    Registrato dal
    Apr 2002
    Messaggi
    1,281
    Originariamente inviato da piero.mac
    Quali sono le date che hai inserito??? prova a postare la tua query.
    quando inserisco nel record faccio per esempio così:


    insert into tabella (cod,data) values ('ccc',UNIX_TIMESTAMP(NOW());


    quando estraggo faccio come hai detto tu (se devo estrarre tutti i record da oggi a 3 mesi fa):


    SELECT * from tabella where FROM_UNIXTIME(data) <= NOW() - INTERVAL 3 MONTH


    il campo data è in formato int(10) unsigned.

    Se tolgo FROM_UNIXTIME sembra ( ) funzionare tutto.

    :master:

  7. #7
    Probabilmente non hai dati anteriori di tre mesi ad oggi....
    ho il seguente problema. devo selezionare i record, contraddistinti da un campo data in unix_timestamp, dalla data odierna a date variabili passate come ad esempio 3 mesi,4 messi o 1 anno fa.
    Mi sono basato su questo per risponderti.

    Posta un timestamp e vediamo che valore ha.


    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  8. #8
    Utente di HTML.it L'avatar di pgm
    Registrato dal
    Apr 2002
    Messaggi
    1,281
    Originariamente inviato da piero.mac
    Probabilmente non hai dati anteriori di tre mesi ad oggi....

    Mi sono basato su questo per risponderti.

    Posta un timestamp e vediamo che valore ha.

    i valori del campo tada sono ad esempio 1096980737.

    oggi ho inserito dei record e quindi dovrebbe estrarli, vero?

    poi non capisco perchè togliendo FROM_UNIXTIME dalla query tutto sembra funzionare

  9. #9
    difatti il tuo timestamp unix 1096980737 e':

    from_unixtime(unixtime)
    2004-10-05 14:52:17

    Secondo te, questa data e' piu' recente o piu'passata di (oggi - tre mesi)????

    Forse c'e' confusione sui termini

    oggi = 2004-10-05
    oggi - 3 mesi = 2004-07-05

    quindi la query cerca le date uguali o antecedenti il 5 luglio 2004.

    Se invece volevi dire le date a partire da tre mesi fa a questa parte, basta invertire minore con maggiore.... ma ti dara' tutte le date, anche quelle future se non poni anche il limite superiore.

    SELECT * from tabella
    where FROM_UNIXTIME(data) >= NOW() - INTERVAL 3 MONTH


    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  10. #10
    Utente di HTML.it L'avatar di pgm
    Registrato dal
    Apr 2002
    Messaggi
    1,281
    ok mi sono spiegato male...

    intendo estrarre tutti i record da "oggi - 3 mesi".

    ma non ho capito una cosa. come fa ad estrarre date future se fai
    FROM_UNIXTIME(data) >= NOW() ?

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.