- Home
- Categorie
- Coding e Sistemistica
- PHP
- Problema data corrente
-
Problema data corrente
Salve, vorrei selezionare da una tabella delle righe che abbiamo cone campo dal (datetime) un valore superiore o uguale alla data odierna.
1- ho provato la soluzione con NOW() etc
2- ho provato la soluione con mktime() e con date('Y-m-d')Sempre righe vuote
Grazie mille!
-
Ciao NicolePaolini,
la soluzione migliore è senz'altro quella di lavorare con dei timestamp, se non ti è possibile trasformarle, potresti postare la query inviata così proviamo a sistemarla?
-
@Samyorn said:
Ciao NicolePaolini,
la soluzione migliore è senz'altro quella di lavorare con dei timestamp, se non ti è possibile trasformarle, potresti postare la query inviata così proviamo a sistemarla?
mmm ci provo!
da datetime a timestamp e poi cosa uso per il confronto? now()? altro?
-
Per fare questo dovresti sostituire l'attuale campo in datetime con un campo INT convertendo le date in timestamp, riadattando ovviamente anche il codice in modo che i prossimi dati verranno inseriti in timestamp.
Una volta che avrai i dati in formato timestamp significa che lavorerai con dei numeri interi quindi con i semplicissimi <= otterrai il risultato che cerchi.
time(); per ottenere il timestamp attuale e quindi confronti tale valore con il contenuto del Db
[PHP]$time=time();
$sql="SELECT * FROM table WHERE campodata >= '$time'";[/PHP]
-
@Samyorn said:
Per fare questo dovresti sostituire l'attuale campo in datetime con un campo INT convertendo le date in timestamp, riadattando ovviamente anche il codice in modo che i prossimi dati verranno inseriti in timestamp.
Una volta che avrai i dati in formato timestamp significa che lavorerai con dei numeri interi quindi con i semplicissimi <= otterrai il risultato che cerchi.
time(); per ottenere il timestamp attuale e quindi confronti tale valore con il contenuto del Db
[PHP]$time=time();
$sql="SELECT * FROM table WHERE campodata >= '$time'";[/PHP]
Non occorre trasformare tutto in timestamp: anche con i datetime si possono fare questo tipo di confronti, il dbms lo consente senza problemi, l'unica differenza è che si risparmiano 2byte in archiviazione se non ricordo male, inoltre se ha un db pieno zeppo di record dovrebbe riconvertire tutto.
es:
[PHP]$sql = "SELECT * FROM table WHERE datefield >= NOW()";[/PHP]