Mysql BETWEEN con fechas
Anuncio:
Los diferentes formatos de fechas pueden causarnos algún inconveniente a la hora de hacer consultas. Si tenemos un formato de fecha tipo DATETIME (YYYY-MM-DD HH:MM:SS) y hacemos una consulta del tipo:
SELECT fecha from mi_tabla WHERE fecha between 'yyyy-mm-ss' AND 'yyyy-mm-ss'
Es muy probable, que el valor de inicio y fin del rango no se incluya en el resultado de la búsqueda.
Para incluir la fecha de inicio y fin en el resultado de la consulta con between debemos hacerlo de la siguiente forma:
SELECT fecha from mi_tabla WHERE CAST(fecha AS DATE) between 'yyyy-mm-ss' AND 'yyyy-mm-ss'
Es decir, hacemos un casting del atributo fecha de DATETIME a DATE que es en realidad lo que estamos indicando en los rangos de between.
Otra solución, pasa por agregar la hora a los parámetros de between tipo:
SELECT ... between 'yyyy-mm-ss hh:mm:ss' AND 'yyyy-mm-ss hh:mm:ss'
Para comparar DATETIME con DATETIME, valga la redundancia. Comparamos peras con peras y manzanas con manazas.
Con esto, ya podemos incluir el valor de inicio y fin en el resultado de la consulta.
Puedes leer más información relacionada con MySQL. También puedes consultar la documentación oficial de MySQL.
Espero que os haya sido de utilidad!