Puedes usar el DAYOFMONTH()
función en MySQL para devolver el día del mes a partir de una fecha.
Por "día del mes", me refiero a un valor entre 1 y 31 (o 0 para fechas con una parte de día cero), a diferencia del día de la semana, como el lunes, etc.
Por ejemplo, si proporciona una fecha de 2018-01-07 , el DAYOFMONTH()
la función devolverá 7 .
Sintaxis
La sintaxis es así:
DAYOFMONTH(date)
Donde date
es el valor de fecha del que desea que se devuelva el día del mes.
Ejemplo
Aquí hay un ejemplo para demostrarlo.
SELECT DAYOFMONTH('2020-06-18') AS 'Result';
Resultado:
+--------+ | Result | +--------+ | 18 | +--------+
Si la parte del día tiene un cero inicial, el cero inicial se omite del resultado. Ejemplo:
SELECT DAYOFMONTH('2020-06-07') AS 'Result';
Resultado:
+--------+ | Result | +--------+ | 7 | +--------+
Un ejemplo de base de datos
Este es un ejemplo de cómo extraer la parte del día de una columna cuando se ejecuta una consulta en una base de datos.
USE sakila; SELECT payment_date AS 'Date/Time', DAYOFMONTH(payment_date) AS 'Day of Month' FROM payment WHERE payment_id = 1;
Resultado:
+---------------------+--------------+ | Date/Time | Day of Month | +---------------------+--------------+ | 2005-05-25 11:30:37 | 25 | +---------------------+--------------+
Fecha/hora actual
Aquí hay un ejemplo de cómo extraer la parte del día de la fecha y hora actuales (que se devuelve usando NOW()
función).
SELECT NOW(), DAYOFMONTH(NOW());
Resultado:
+---------------------+-------------------+ | NOW() | DAYOFMONTH(NOW()) | +---------------------+-------------------+ | 2018-06-25 18:16:00 | 25 | +---------------------+-------------------+
Otra forma de hacer esto es usar CURDATE()
función, que devuelve solo la fecha (pero no la hora).
SELECT CURDATE(), DAYOFMONTH(CURDATE());
Resultado:
+------------+-----------------------+ | CURDATE() | DAYOFMONTH(CURDATE()) | +------------+-----------------------+ | 2018-06-25 | 25 | +------------+-----------------------+