此表格:sysschedules
如果freq_type
是8(每周),则freq_interval
对于Su,M,T,W,Th,F,S是1,2,4,8,16,32,64。
但是当freq_type
为32(每月相对)时,freq_interval
为1,2,3,4,5,6,7,8,9,10为Su,M,T,W ,Th,F,S,工作日,周末。
这是为什么?是否存在某种计算以降低查询复杂性?
如果是这样,怎么样? (如果我听起来无能为力,建立一个反复出现的事件系统正在融化我的大脑)
答案 0 :(得分:6)
如果freq_type
为8,则作业可以在一天或多天天发生 - 因此需要有一种方法来表示freq_interval
列中的多天。这是通过为每天分配两个值的幂来完成的,因此可以明确地将多个值加在一起。例如。对于周一,周三和周五发生的事情,该值将是2 + 8 + 32 = 42.(您的问题分配给日期的错误值)
如果freq_type
为32,则只能选择一个选项 - 一天,或者一天,工作日或周末。由于无法组合多个值 ,因此可以使用更简单的表示法。