sql – “一再使命”的计划选项
我正在编写一个处理赏罚职员使命的小应用措施.很是简朴,但就表计划而言,我所僵持的地区是一个一再使命的环境,可所以一次性,天天,每周或每月.假如是每周一次,那就是每周特定的一天.每月是特定的一天. 我有一个使命表和一个recurring_type_id,而且将在代码中处理赏罚一再的使命,但这是抱负的要领吗?另一种要领是在建设使命时插入全部使命 – 每个变乱时刻.但这好像也不正确. 任何人都可以就计划提出提议,以及怎样故可维护和有用的方法处理赏罚这个题目? 我正在行使SQL Server 2008 R2 办理要领我会建设一个使命表来插入我的使命.taskTable |taskID |Freq |runAt | ------------------------------- |1 |daily |1 | |2 |daily |0 | |3 |weekly |5 | |4 |weekly |1 | |5 |monthly|15 | |6 |monthly|1 | |7 |once |2013-7-4 | runAt for dailies从未被思量过,因此输入的值无关紧急. 每周项目标runAt是使命运行的礼拜几. runAt for mothly是使命运行的月份的一天(月末使命我凡是在第一天运行,由于这样可以省行止理赏罚月份哪一天竣事的贫困,尽量你可以用它来办理这个题目 lastDayOfMonth = datePart(d,dateadd(s,-1,dateadd(mm,datediff(m,getdate())+1,0))) runAt for once是使命运行的现实日期. 然后我建设一个天天运行的使命,看看必要运行什么. select taskID from taskTable where (freq = 'once' and runAt = convert(varchar(10),getDate(),21)) or freq = 'daily' or (freq = 'weekly' and runAt = datePart(dw,getDate())) or (freq = 'monthly' and runAt = datePart(d,getDate()) 此查询为我提供了我必要运行的任何使命的全部taskID. 不确定这是否是你想要的,但但愿你能找到有效的对象. (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |