Hola, actualmente tengo dos tablas, una tiene entradas diarias y otra obtiene el total de esas y almacena valores mensuales.
Soy capaz de obtener los totales de cada mes y añocon la siguiente consulta, pero lo que me gustaría hacer es obtener los meses en los que el mes es mayor y igual al mes actual. La columna de la fecha de BTW está en formato de fecha (aaaa-mm-dd)
$revbyMonth = $conn->prepare("SELECT EXTRACT(MONTH FROM date) as month, EXTRACT(YEAR FROM date) as year, SUM(rev) as total FROM {$tempName} GROUP BY year, month");
Respuestas
1 para la respuesta № 1Quieres añadir un where
cláusula inmediatamente después de la from
cláusula. Creo que esto funcionará para ti. Si la fecha no tiene componente de tiempo:
where date > date_sub(curdate(), interval day(curdate()) day)
La expresion date_sub(curdate(), interval day(curdate()) day)
Recibe el último día del mes anterior. Si las fechas tienen un componente de tiempo:
where date >= date_sub(curdate(), interval day(curdate()) - 1 day)
Deberia trabajar.
Nota: esto es mejor que otros métodos que procesan. date
utilizando funciones, tales como:
where year(date) > year(curdate()) or
(year(date) = year(curdate()) and month(date) >= month(curdate()) )
El uso de las funciones evita que MySQL use un índice en el date
columna.