Eu quero encontrar o intervalo de cinco minutos antes da hora atual. Portanto, se a hora atual for 8h43, quero retornar 8h35 e 8h40. Aqui está a consulta que escrevi e está funcionando conforme o esperado. Eu quero saber se há alguma maneira melhor...
mysql> select now() ;
+---------------------+
| now() |
+---------------------+
| 2012-03-11 08:43:06 |
+---------------------+
1 row in set (0.00 sec)
mysql> SELECT date_sub(from_unixtime(unix_timestamp(curdate()) + floor(TIME_TO_SEC(now())/300)*300), interval 5 minute) as ten_minute_interval, from_unixtime(unix_timestamp(curdate()) + floor(TIME_TO_SEC(now())/300)*300) as five_minute_interval;
+---------------------+----------------------+
| ten_minute_interval | five_minute_interval |
+---------------------+----------------------+
| 2012-03-11 08:35:00 | 2012-03-11 08:40:00 |
+---------------------+----------------------+
1 row in set (0.00 sec)
mysql> SELECT some better query...
Tente esta consulta
Aqui está a consulta que fornecerá o intervalo de 5 minutos mais recente
Para testá-lo, insira o que quiser para gt
Exemplo: Você mencionou '2012-03-11 08:43:06'
De uma chance !!!
selecione agora() como 'Hora atual', timestampadd(minuto,-5,agora()) como 'Five_minute_interval', timestampadd(minuto,-10,agora()) como 'Ten_minute_interval'
Você pode tentar isso