Я пытаюсь сделать запрос в предыдущий четверг, а также в следующую пятницу, учитывая определенную дату. Если дата прошла в пятницу, то PrevFriday
должна быть текущей датой. Точно так же, если переданная дата является четвергом, тогда nextThursday
должна быть датой, которая была передана.
Я видел некоторые другие решения на этом сайте, которые включают использование смещения WEEKDAY()
на некоторый интервал, но это работает только тогда, когда дата статична. Поскольку я собираюсь пропустить столбец WorkDate
через это позже, мне нужно, чтобы это работало для каждой даты, а не только для конкретных дат.
В настоящее время у меня есть запрос, который работает ТОЛЬКО на сегодняшний день, а не диапазон дат.
1
SELECT '2019-05-16' + INTERVAL -3 - weekday('2019-05-16') DAY AS PrevFriday,
'2019-05-16' + INTERVAL 3 - weekday('2019-05-16') DAY AS NextThursday
Этот код выводит ожидаемый результат, но если мы изменим дату, которую мы передаем завтра:
2
SELECT '2019-05-17' + INTERVAL -3 - weekday('2019-05-17') DAY AS PrevFriday,
'2019-05-17' + INTERVAL 3 - weekday('2019-05-17') DAY AS NextThursday
ОЖИДАЕМЫЙ вывод для первого куска кода:
PrevFriday -> 2019-05-10
,
NextThursday -> 2019-05-16
ОЖИДАЕМЫЙ выход для второго куска кода:
PrevFriday -> 2019-05-17
,
NextThursday -> 2019-05-23
Но НАСТОЯЩИЕ результаты:
PrevFriday -> 2019-05-10
,
NextThursday -> 2019-05-16