2011-04-26 23 views
25

estoy atascado con un problema en MySQL. Quiero obtener el recuento de registros entre dos entradas de fecha y hora.
Por ejemplo:
tengo una columna en mi tabla llamada 'creado' que tiene el tipo de datos datetime.mysql: obtener el número de registros entre dos fecha-hora

Quiero contar los registros que se crearon con fecha y hora entre "TODAY'S 4:30 AM" y "CURRENT DATE TIME".

He intentado algunas de las funciones de MySQL, pero aún ninguna suerte con él.

¿Me podría ayudar con esto? gracias.

Respuesta

56

puede estar con:

SELECT count(*) FROM `table` 
where 
    created_at>='2011-03-17 06:42:10' and created_at<='2011-03-17 07:42:50'; 

o uso between:

SELECT count(*) FROM `table` 
where 
    created_at between '2011-03-17 06:42:10' and '2011-03-17 07:42:50'; 

Usted puede cambiar la fecha y hora según su necesidad. Puede ser el uso curdate() o now() para obtener las fechas deseadas.

+10

Tenga en cuenta que el orden importa, es necesario escribir primero más pequeño de fecha y hora y luego más grande de fecha y hora – Hafiz

+0

¿Qué pasa si la fecha y la hora en columna separada. –

+0

En ese caso, necesitará una combinación de condiciones de fecha y hora. Por ejemplo, si desea filtrar durante un tiempo en un solo día, la columna de fecha tendrá la misma condición junto con el tiempo que tiene entre condiciones. En otros casos, puede filtrar con en fecha y orden por tiempo obtener todos los registros de esas fechas. –

5
select * from yourtable where created < now() and created > '2011-04-25 04:00:00' 
4
select * from yourtable 
    where created < now() 
    and created > concat(curdate(),' 4:30:00 AM') 
Cuestiones relacionadas