我具有以下要求:
如果日期的星期天,星期三应为5:00:00 Pm(FromColumn)至6:00:00 PM(ToColumn),星期二的日期时间应为FromColumn 8:00:00 AM至9:00 :00:(Tocolumn)中的
此后,我们需要在物理表中输入此列“ FromDate”和“ Todate”,这些存储在数据库中
我正在使用上述逻辑,但无法更新“ ToDate”列,也无法在物理表中插入数据。
答案 0 :(得分:1)
您可以使用数字表或递归CTE生成所有日期。剩下的只是日期算术和过滤:
with dates as (
select convert(datetime, '2019-01-01') as dte
union all
select dateadd(day, 1, dte)
from dates
where dte < '2019-12-31'
)
select (case when datename(weekday, dte) in ('Sunday', 'Wednesday')
then dateadd(hour, 17, dte)
else dateadd(hour, 8, dte)
end) as FromDate,
(case when datename(weekday, dte) in ('Sunday', 'Wednesday')
then dateadd(hour, 18, dte)
else dateadd(hour, 9, dte)
end) as ToDate
from dates
where datename(weekday, dte) in ('Sunday', 'Tuesday', 'Wednesday')
option (maxrecursion 0);
Here是db <>小提琴。