Não está totalmente claro o que você deseja que sua consulta faça , mas a essência da sua pergunta me leva a sugerir que você analise a aritmética modular:em SQL,
a % b
retorna o restante quando um
é dividido por b
- se não houver resto (ou seja, a % b =0
), então um
deve ser um múltiplo exato de b
. No seu caso, eu acho você está tentando encontrar eventos em que o tempo entre o início do evento e algum literal fornecido é um múltiplo exato do intervalo do evento:isto é,
(literal - event_start) % event_interval =0
. Se for diferente de zero, o valor é o tempo até a próxima ocorrência após literal
(e, portanto, para determinar se a próxima ocorrência ocorre dentro de algum período de tempo, digamos um dia, deve-se testar para ver se o restante é menor que tal constante, por exemplo (literal - event_start) % event_interval <86400 ).
Se não for isso que você procura, esclareça exatamente o que sua consulta está tentando alcançar.