如何计算SQL Server sysschedules间隔?

时间:2012-02-14 08:56:14

标签: sql sql-server

此表格: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,工作日,周末。

这是为什么?是否存在某种计算以降低查询复杂性?

如果是这样,怎么样? (如果我听起来无能为力,建立一个反复出现的事件系统正在融化我的大脑)

1 个答案:

答案 0 :(得分:6)

如果freq_type为8,则作业可以在一天或多天天发生 - 因此需要有一种方法来表示freq_interval列中的多天。这是通过为每天分配两个值的幂来完成的,因此可以明确地将多个值加在一起。例如。对于周一,周三和周五发生的事情,该值将是2 + 8 + 32 = 42.(您的问题分配给日期的错误值)

如果freq_type为32,则只能选择一个选项 - 一天,或者一天,工作日或周末。由于无法组合多个值 ,因此可以使用更简单的表示法。