sql >> Base de Datos >  >> RDS >> Mysql

Repetición de eventos del calendario y algunas matemáticas finales

No está del todo claro lo que quiere que su consulta haga , pero la esencia de su pregunta me hace inclinarme a sugerirle que busque en la aritmética modular:en SQL, a % b devuelve el resto cuando a se divide por b - si no hay resto (es decir, a % b = 0 ), luego a debe ser un múltiplo exacto de b .

En tu caso, creo está tratando de encontrar eventos donde el tiempo entre el inicio del evento y algún literal dado es un múltiplo exacto del intervalo del evento:es decir, (literal - event_start) % event_interval = 0 . Si no es cero, el valor es el tiempo hasta la siguiente ocurrencia después de literal (y, por lo tanto, para determinar si la próxima ocurrencia ocurre dentro de un período de tiempo, digamos un día, uno probaría para ver si el resto es menor que esa constante, por ejemplo, (literal - event_start) % event_interval < 86400 ).

Si esto no es lo que busca, aclare exactamente lo que su consulta está tratando de lograr.