私は、利用可能なスケジュールを持つテーブルがあります。は、SQL Serverで次の二つの可能なスケジュールをゲット
(WeekOfTheDay 1 - 日曜日、2 - 月曜日...)
私の目標は得ることですが次の2日間、利用可能なスケジュールで、日付まで。私は一日2016年4月5日午前9時00分があれば、私は、例えば
を取得する必要があります
日2016年4月5日
日05- 05から2016
私は一日2016年5月5日午後07時持っている場合は、私が取得する必要があります。
日2016年9月5日
日2016年10月5日
これを解決するために、私は次の週を希望の日付までにしようとします:
with cteAS
(
SELECT 0 as [Num]
UNION ALL
SELECT [Num] + 1
FROM cte
WHERE [Num] + 1 <= 6
)
INSERT INTO @auxDays ([Day], WeekDayValue)
SELECT
dateadd(dd, [Num], @actualDate),
DATEPART(dw, dateadd(dd, [Num], @actualDate))
FROM cte;
SELECT D.[Day]
FROM ScheduleTbl T
INNER JOIN @auxDays D ON D.WeekDayValue = T.WeelkOfTheDay
WHERE T.BeginHour >= @hourFromActualDate
ORDER BY D.[Day] ASC
@hourFromActualDate - >私の@actualDateは'04 -05-2016 9:00' 、そうであるならば - 私はhourFromActualDateでフィルタリングするとき別> 9時
を私は本当の次の二つを取得することはできません利用可能なスケジュール。
あなたは2016年5月5日夜07時を渡し、その後、なぜあなたは2016年9月5日、および2016年10月5日を取得する必要があります。 – KumarHarsh
サンプルデータはDDLとDMLを提供し、他の人があなたを助けるのを助けてください。 – Serg