Cómo consultar un período específico durante un día durante el último año

Me gustaría seleccionar un período específico durante el día (15 minutos) y luego simplemente quiero obtener datos históricos para cada día del año pasado. simplemente no se donde poner INTERVAL 1 DAY en MySQL. Quiero obtener datos de (2012-10-15 a 2013-10-15).

Así que aquí está mi código de muestra:

select *, FROM_UNIXTIME(timestamp/1000000000) 
FROM pulsars
WHERE timestamp between UNIX_TIMESTAMP('2013-10-15 02:00:00')*1e9 
AND UNIX_TIMESTAMP('2013-10-15 02:15:00')*1e9 
AND name = 'GEMINGA'
ORDER by timestamp
LIMIT 0,100000000

preguntado el 15 de noviembre de 13 a las 08:11

1 Respuestas

select [...]
from pulsars 
where time(FROM_UNIXTIME(timestamp)) between time('02:00:00') and time('02:15:00')
and name = 'GEMINGA'
and timestamp between unix_timestamp('2012-10-15') and unix_timestamp('2013-10-15')
group by date(FROM_UNIXTIME(timestamp));

al time() La función extraerá solo el día de su marca de tiempo. Convierto las fechas en unix_timestamp en la cláusula where porque supongo que la marca de tiempo tiene un índice y, por lo tanto, la consulta será más rápida. La agrupación por día da una fila para cada día. Agrega funciones en la selección que tienes que hacer tú mismo ya que no conozco tus datos.

Si desea seleccionar cada día por separado, deshágase del grupo y use timestamp between unix_timestamp(select_date) and unix_timestamp(select_date + interval 1 day) para cada día.

respondido 15 nov., 13:08

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.