mysql

Consulta con fechas en MySQL y PHP

En ocasiones necesitamos hacer consultas o queries en MySQL con PHP usando fechas. Por ejemplo, consultar las ventas de hoy, o las ventas del mes.

También puede que necesitemos consultar con fechas en un rango, ya sea un año, de hoy, de unas horas, etcétera.

Por ello es que vengo a mostrar hoy cómo hacer consultas con fechas en MySQL usando date y strtotime.

Consultar con fechas en MySQL y PHP

Tomemos un ejemplo sencillo de ventas en donde tenemos una tabla de ventas que tiene la fecha y hora en la que la misma fue realizada. Al consultar todos los datos se ve así:

See the gist on github.

Ahora veremos cómo consultar con determinadas fechas. Veamos el ejemplo para consultar las ventas del día 6 de noviembre del 2019.

Usar PHP para las fechas

Lo único que necesitamos son dos fechas: la del inicio y la del fin. La de inicio la proporciona el usuario o nosotros tomamos la fecha de hoy con:

$fecha = date("Y-m-d") . " 00:00:00";

Así tenemos la fecha de medianoche del inicio. Algo como 2019-11-06 00:00:00

Ahora el “problema” radica en el día siguiente, pues debemos consultar todas las del día, sin pasarnos y sin que nos falte (incluso si una venta se hizo a las 23:59)

Para ello, usamos strtotime y obtenemos la fecha del siguiente día, así:

See the gist on github.

La magia para sumar fechas es usar strtotime y +1 day tomando como fecha para los cálculos la fecha de inicio.

Ahora que ya tenemos ambas fechas podemos hacer la consulta así (fíjate que primero es >= y después es <):

See the gist on github.

De modo que tome todas las fechas de hoy pero cuya fecha no sea mayor ni igual a mañana. Como las fechas se toman como cadena, el orden será respetado.

Con la siguiente salida:

See the gist on github.

Poniendo todo junto

Así que si usamos PDO con una conexión así:

See the gist on github.

La consulta quedaría algo así:

See the gist on github.

De esa manera evitamos inyecciones SQL y hacemos una consulta por fecha. Con este enfoque podríamos tomar meses, días, años, etcétera.

Encantado de ayudarte


Estoy disponible para trabajar en tu proyecto, modificar el programa del post o realizar tu tarea pendiente, no dudes en ponerte en contacto conmigo.

No te pierdas ninguno de mis posts

Suscríbete a mi canal de Telegram para recibir una notificación cuando escriba un nuevo tutorial de programación.
parzibyte

Programador freelancer listo para trabajar contigo. Aplicaciones web, móviles y de escritorio. PHP, Java, Go, Python, JavaScript, Kotlin y más :) https://parzibyte.me/blog/software-creado-por-parzibyte/

Entradas recientes

Imprimir PDF con Bot de Telegram

La impresión de un PDF en cualquier impresora se puede automatizar con un bot de…

1 día hace

Enviar mensaje con bot de Telegram usando JavaScript (lado del cliente)

Hoy te enseñaré cómo enviar un mensaje a un usuario desde un bot de Telegram…

2 días hace

PHP: incrustar imagen en base64

El día de hoy te enseñaré algo muy sencillo pero útil al programar con PHP:…

2 días hace

Plugin ESC POS – Actualización 3.4.0: imprimir HTML

El plugin para imprimir en impresoras térmicas alcanza hoy su versión 3.4.0 agregando soporte para…

3 días hace

JavaScript (lado del cliente): leer pixeles de imagen

En ocasiones es necesario leer los pixeles y colores de una imagen con JavaScript del…

1 semana hace

PHP y JavaScript: llenar select con AJAX

Siguiendo con los tutoriales de listas desplegables o select con JavaScript, vamos a ver cómo…

1 semana hace

Esta web usa cookies.