- Home
- Categorie
- Coding e Sistemistica
- Coding
- Problema data corrente
- 
							
							
							
							
							Problema data correnteSalve, 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]