Saltar al contenido

MySQL primer día y último día del mes actual y anterior a partir de la fecha (sin marca de tiempo)

este problema se puede solucionar de diferentes maneras, por lo tanto te damos la solución más completa en nuestra opinión.

Solución:

Puedes usar LAST_DAY(NOW() - INTERVAL 1 MONTH) + INTERVAL 1 DAY,que restará un mes a partir de ahora y sumando 1 día en LAST_DAY del mes anterior le dará el primer día del mes actual

SELECT SUM(t1.hours) AS totalhours FROM
(
    SELECT (time_to_sec(timediff(time_out, time_in)) / 3600) AS hours FROM bb_work_log 
    WHERE user_id = 6 
    AND (working_date BETWEEN LAST_DAY(NOW() - INTERVAL 1 MONTH) 
    AND LAST_DAY(NOW()))
) AS t1

LAST_DAY(NOW() – INTERVALO 1 MES) esto le dará el último día del mes anterior

Primer/último día del mes Demostración de violín

Primer día del mes anterior

select last_day(curdate() - interval 2 month) + interval 1 day

Último día del mes anterior

select last_day(curdate() - interval 1 month)

Primer día del mes actual

select last_day(curdate() - interval 1 month) + interval 1 day

Último día del mes actual

select last_day(curdate())

Puedes lograrlo de esta manera —-

/* Current month*/
SELECT DATE_SUB(LAST_DAY(NOW()),INTERVAL DAY(LAST_DAY(NOW()))-1 DAY),CONCAT(LAST_DAY(NOW()),' 23:59:59');

SELECT LAST_DAY(CURDATE()) - INTERVAL DAY(LAST_DAY(CURDATE()))-1 DAY ,CONCAT(LAST_DAY(NOW()),' 23:59:59');

/* previous month*/
SELECT  DATE_FORMAT(CURDATE() - INTERVAL 1 MONTH,'%Y-%m-01 00:00:00'),DATE_FORMAT(LAST_DAY(CURDATE()-INTERVAL 1 MONTH),'%Y-%m-%d 23:59:59');

Aquí tienes las reseñas y valoraciones

Si te mola el tema, tienes la habilidad dejar un ensayo acerca de qué te ha gustado de esta sección.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *