Tengo un informe que está impulsado por una consulta SQL que tiene este aspecto:¿Cómo selecciono hace dos semanas en MYSQL?
SELECT batch_log.userid,
batches.operation_id,
SUM(TIME_TO_SEC(ramses.batch_log.time_elapsed)),
SUM(ramses.tasks.estimated_nonrecurring + ramses.tasks.estimated_recurring),
DATE(start_time)
FROM batch_log
JOIN batches ON batch_log.batch_id=batches.id
JOIN ramses.tasks ON ramses.batch_log.batch_id=ramses.tasks.batch_id
JOIN protocase.tblusers on ramses.batch_log.userid = protocase.tblusers.userid
WHERE DATE(ramses.batch_log.start_time) > "2011-02-01"
AND ramses.batch_log.time_elapsed > "00:03:00"
AND DATE(ramses.batch_log.start_time) < now()
AND protocase.tblusers.active = 1
AND protocase.tblusers.userid NOT in ("ksnow","smanning", "dstapleton")
GROUP BY userid, batches.operation_id, date(start_time)
ORDER BY start_time, userid ASC
Dado que se trata de comparar con el tiempo desde el payperiod actual se produce un error.
Nuestros períodos de pago comienzan el domingo, el primer período de pago fue 2011-02-01 y nuestro último período de pago comenzó el 4 de este mes. ¿Cómo pongo eso en mi declaración Where para quitar el período de pago más reciente de la consulta?
EDITAR: Así que ahora estoy usando date_sub (now(), INTERVAL 2 WEEK) pero realmente necesito un día de la semana (SUNDAY) dado que es miércoles lo está cortando el miércoles.
Consulte [Funciones de fecha y hora de MySQL] (http://dev.mysql.com/doc/refman/5.5/en/ fecha-y-hora-funciones.html), concretamente DATE_SUB() –