2011-09-13 22 views
6
startTimestamp < date_sub(curdate(), interval 1 hour) 

La (sotto) query sopra restituirà tutti i record creati nell'ora? Se no, qualcuno mi mostrerà uno corretto? La query completa può apparire come segue:selezionare tutti i record creati nell'ora

select * from table where startTimestamp < date_sub(curdate(), interval 1 hour); 

risposta

15

Piuttosto che CURDATE(), utilizzare NOW() e utilizzare >= piuttosto che < poiché si desidera timestamp di essere superiore al timestamp da un'ora fa. CURDATE() restituisce solo la parte della data, dove NOW() restituisce sia la data che l'ora.

startTimestamp >= date_sub(NOW(), interval 1 hour) 

Per esempio, nel mio fuso orario che è 12:28

SELECT NOW(), date_sub(NOW(), interval 1 hour); 
2011-09-13 12:28:53 2011-09-13 11:28:53 

Tutti insieme, quello che vi serve è:

select * from table where startTimestamp >= date_sub(NOW(), interval 1 hour); 
+0

Grazie. Funziona! – tribal

+0

come si può sottrarre in modo che dalle 12:28:53 ricevo 11:00:00? – PeeS

+0

posso selezionare da tutte le tabelle di un singolo database? – mario

Problemi correlati