当前位置: 代码迷 >> Sql Server >> 求:根据begin_date,end_date,type_no获取执行时间
  详细解决方案

求:根据begin_date,end_date,type_no获取执行时间

热度:165   发布时间:2016-04-27 14:33:15.0
求高手指点:根据begin_date,end_date,type_no获取执行时间
求一存储过程:根据begin_date,end_date,type_no获取执行时间execute_date

说明:type_no有3类:01代表每天,02代表每周,03代表每月

根据begin_date,end_date,type_no,求得执行日期execute_date


举例:
数据库表中的一条记录如下
begin_date:2012-02-05
end_date:2012-02-08
type_no:01
execute_date:null

根据当前系统日期判断,第一次执行的日期为2012-02-06,第二次执行的日期为2012-02-07,第三次执行的日期为2012-02-08

求高手指点

------解决方案--------------------
把每个type_no的情况都说下呗,然后写下对应的execute_date结果。
------解决方案--------------------
你想要的结果是什么样子的表。写个样子啊。还是你想做什么事?
------解决方案--------------------
探讨
“每周”的意思是:每个礼拜的星期一执行
对于开始日期是2012-02-06,那么下一个周一就是“2012-02-13”

“每月”的意思是:每个月的1号执行
对于开始日期是2012-02-06,那么下一个1号就是“2012-03-01”

------解决方案--------------------
SQL code
--得出下一天的日期select getdate()+1得出下一个工作日的日期create function GetNextWorkDay ( @date datetime )returns datetimeas     begin        set @date = @date + 1        while ( datepart(weekday, ( @date + @@datefirst - 1 )) > 5 )             begin                set @date = @date + 1            end        return @date    end    --得到下一个工作日select dbo.GetNextWorkDay('2012-02-10')/*2012-02-13 00:00:00.000*/