ultimo obtener mes last first day mysql date get

obtener - last day mysql



¿Cómo obtengo el primer día del mes actual? (11)

Necesito seleccionar datos de la base de datos MySQL entre el primer día del mes actual y el día actual.

select*from table_name where date between "1st day of current month" and "current day"

¿Alguien puede proporcionar un ejemplo de trabajo de esta consulta?


Estaba buscando una consulta similar donde necesitaba usar el primer día de un mes en mi consulta. La función last_day no funcionó para mí, pero DAYOFMONTH me DAYOFMONTH útil.

Entonces, si alguien está buscando el mismo problema, el siguiente código devuelve la fecha del primer día del mes actual.

SELECT DATE_SUB(CURRENT_DATE, INTERVAL DAYOFMONTH(CURRENT_DATE)-1 DAY);

Comparando una columna de fecha con el primer día del mes:

select * from table_name where date between DATE_SUB(CURRENT_DATE, INTERVAL DAYOFMONTH(CURRENT_DATE)-1 DAY) and CURRENT_DATE


He usado la siguiente consulta. Me ha funcionado muy bien en el pasado.

select date(now()) - interval day(now()) day + interval 1 day


Solución completa para el mes en curso de MySQL y el año en curso, que también hace uso de la indexación :)

-- Current month SELECT id, timestampfield FROM table1 WHERE timestampfield >= DATE_SUB(CURRENT_DATE, INTERVAL DAYOFMONTH(CURRENT_DATE)-1 DAY) AND timestampfield <= LAST_DAY(CURRENT_DATE); -- Current year SELECT id, timestampfield FROM table1 WHERE timestampfield >= DATE_SUB(CURRENT_DATE, INTERVAL DAYOFYEAR(CURRENT_DATE)-1 DAY) AND timestampfield <= LAST_DAY(CURRENT_DATE);


Un enfoque menos ortodoxo podría ser

SELECT * FROM table_name WHERE LEFT(table_name.date, 7) = LEFT(CURDATE(), 7) AND table_name.date <= CURDATE();

como una fecha entre el primero de un mes y ahora es equivalente a una fecha en este mes, y antes de ahora. Siento que esto es un poco más fácil para los ojos que algunos otros enfoques, sin embargo.


prueba esto :

SET @StartDate = DATE_SUB(DATE(NOW()),INTERVAL (DAY(NOW())-1) DAY); SET @EndDate = ADDDATE(CURDATE(),1); select * from table where (date >= @StartDate and date < @EndDate);


SELECT date_sub(current_date(),interval dayofmonth(current_date())-1 day) as first_day_of_month;


SET @date:=''2012-07-11''; SELECT date_add(date_add(LAST_DAY(@date),interval 1 DAY), interval -1 MONTH) AS first_day


select * from <table> where <dateValue> between last_day(curdate() - interval 1 month + interval 1 day) and curdate();


select * from table where date between (date_add (CURRENT_DATE, INTERVAL(1 - DAYOFMonth(CURRENT_DATE)) day)) and current_date;


select * from table_name where (date between DATE_ADD(LAST_DAY(DATE_SUB(CURDATE(), interval 30 day), interval 1 day) AND CURDATE() )

O mejor :

select * from table_name where (date between DATE_FORMAT(NOW() ,''%Y-%m-01'') AND NOW() )


select * from table_name where `date` between curdate() - dayofmonth(curdate()) + 1 and curdate()

Ejemplo SQLFiddle