--本质含义:距离参照日期(星期二)最近的一个指定日期(星期二)
declare @P0 DateTime set @P0='1999-01-11'
declare @Tuesday DateTime set @Tuesday='2000-01-04'
declare @Wednesday DateTime set @Wednesday='2000-01-05'
select dateadd(week,datediff(day,@Wednesday,@P0)/7,@Tuesday)
--如果输入日期大于参照日期一周以上,那么如下查询可以代表,离输入日期最近的上一个星期二,当然电视台往往星期二下午休息
--如果输入日期小于参照日期一周以上,那么就是另外一个含义了!(本质还是距离最近)
--使用1900,含义较为确定,同时一般系统也不用这个时间。
set @P0='2000-01-11'
set @Tuesday='1900-01-02'
set @Wednesday='1900-01-03'
select dateadd(week,datediff(day,@Wednesday,@P0)/7,@Tuesday)
--输入日期的下一个星期二(输入日期大于参照日期)
select dateadd(week,datediff(day,@Tuesday,@P0)/7+1,@Tuesday)
输入日期的上一个或下一个星期X
最新推荐文章于 2021-01-06 23:11:32 发布