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?
![]()
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;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?
![]()
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.
grazie milleOriginariamente 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.
![]()
![]()
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.Originariamente inviato da pgm
la query non mi estrae niente![]()
forse perchè il campo data è in formato int(10) unsigned?
:master:
Il silenzio è spesso la cosa migliore. Pensa ... è gratis.
quando inserisco nel record faccio per esempio così:Originariamente inviato da piero.mac
Quali sono le date che hai inserito??? prova a postare la tua query.
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:
Probabilmente non hai dati anteriori di tre mesi ad oggi....
Mi sono basato su questo per risponderti.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.
Posta un timestamp e vediamo che valore ha.
![]()
Il silenzio è spesso la cosa migliore. Pensa ... è gratis.
i valori del campo tada sono ad esempio 1096980737.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.
![]()
oggi ho inserito dei record e quindi dovrebbe estrarli, vero?![]()
poi non capisco perchè togliendo FROM_UNIXTIME dalla query tutto sembra funzionare![]()
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.
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() ?