Allí lo que tienes que mirar es la lógica de lo que pones en el WHERE.
En el primer caso, pones:
Es decir, que la fecha (sólo la fecha) de
event_begin sea menor
o igual a la actual, y que el mes sea menor
o igual al actual.
O sea, en realidad te está devolviendo exactamente lo que pides, sólo que no es lo que realmente quieres pedir.
En el segundo caso pasa lo mismo:
Le estás pidiendo, en este contexto, sólo los eventos conprendidos en los primeros días del mes. Más exactamente, entre el día primero y el día actual (si el actual es el primero, sólo dará los eventos del día actual).
Como agregado, en este caso la primera condición es irrelevante, porque la tercera es un subgrupo de ese resultado. Daría lo mismo si pones:
En definitiva, lo que debes reescribir son las condiciones a cumplir, porque según dices, no está devolviendo los datos que
crees estar pidiendo.
Si lo que quieres es que te devuelva los evetos anteriores a la fecha actual, como dices, es mucho más simple:
Si es por fecha.
Si es por fecha y hora (puede devolver eventos de este mismo día, pero que iniciaron en una hora ya pasada).