obtener hora fechas fecha consulta comparar campo mysql date datetime date-comparison

hora - Comparando fechas en MySQL ignorando la porción de tiempo de un campo DateTime



consulta fechas mysql between (7)

@ Mark tiene un buen enfoque, pero solo tenga cuidado de que siempre tendrá que calcular y encontrar el día siguiente en ese caso. Si desea evitar eso y aún ignorar el tiempo, podría hacer lo siguiente:

WHERE order_date >= ''2012-05-27 00:00:00'' AND order_date <= ''2012-05-27 23:59:59''

Espero que esto tenga sentido.

Necesito comparar fechas en MySQL ignorando la porción de tiempo en una columna DateTime . He intentado el siguiente SQL.

SELECT * FROM order_table where order_date=date_format(''2012-05-03'', ''%Y-%m-%d'');

No recupera ninguna fila aunque haya una fecha 2012-05-03 10:16:46 en la tabla MySQL. ¿Cómo se puede ignorar la porción de tiempo en el campo DateTime al comparar fechas en MySQL?


SELECT * FROM order_table WHERE date(order_date) = ''2012-05-03'';


Puede usar la función DATE :

SELECT col1, col2, ..., coln FROM order_table WHERE date(order_date) = ''2012-05-03''

Pero esto es más eficiente, si su tabla es grande y tiene un índice en la order date :

SELECT col1, col2, ..., coln FROM order_table WHERE order_date >= ''2012-05-03'' AND order_date < ''2012-05-04''


Si desea pasar una fecha, puede intentar algo como esto:

where YEAR(order_date)=''2012'' AND MONTH(order_date)=''05'' AND DAY(order_date)=''03''

Puedes ver esto para más funciones.


Tal vez, puedes usar la función como date() . Pero en este caso, la velocidad se puede reducir, porque el índice no se puede usar. Entonces, recomiendo usar

SELECT * FROM order_table WHERE order_date between(''2012-05-03 0:0:0'' and ''2012-05-03 23:59:59'')


uno de los siguientes podría usarse al comparar fechas en MySQL:

DATEDIFF() Subtract two dates TIMEDIFF() Subtract time TIMESTAMPDIFF() Subtract an interval from a datetime expression PERIOD_DIFF() Return the number of months between periods

para obtener más información sobre las funciones de la documentación de MySQL.


Esto es un poco antiguo ... pero una respuesta correcta también es utilizar date_format en la columna order_date como a continuación:

SELECT * FROM order_table where date_format(order_date, ''%Y-%m-%d'')=''2012-05-03'';