Esta tabla: sysschedules¿Cómo se calculan los intervalos sysschedules de SQL Server?
Si el freq_type
es 8 (semanal), entonces freq_interval
es 1,2,4,8,16,32,64 para Su, M, T, W, Th, F, S.
Pero cuando freq_type
es 32 (pariente mensual) entonces freq_interval
es 1,2,3,4,5,6,7,8,9,10 para Su, M, T, W, Th, F, S, día de la semana, fin de semana
¿Por qué es esto? ¿Existe algún tipo de cálculo para reducir la complejidad de la consulta?
Si es así, ¿cómo? (Sry si sueno ni idea, la construcción de un sistema de eventos se repite es la fusión de mi cerebro)
Así que una consulta para obtener todos los eventos en un martes podría ser SELECCIONADA * FROM EventTable WHERE freq_interval = [3 o 4]? Porque 3 si freq_type es 32, 4 si es 8. ¿Correcto? – Chaddeus
Para que todos los eventos ocurran un martes, debe consultar 'WHERE (freq_type = 32 AND freq_interval = 3) O (freq_type = 8 AND freq_interval & 4 = 4)'. Usted * no debería * intentar consultar 'freq_interval' sin considerar también' freq_type'. –
Genial, eso tiene perfecto sentido. ¿Cómo se representan los eventos que ocurren una vez cada dos martes (cada 2 semanas) con este modelo? Quizás 'WHERE (freq_type = 32 AND freq_interval = 3 AND freq_relative_interval = 5)'? freq_relative_interval 1 = Primero y 4 = Tercero. (Después de tipear todo esto, parece que esto no responderá la pregunta. En cambio, solo regresa cada primer y tercer martes ...). Hmm ... – Chaddeus