2015-09-10 2 views
0

Как получить n-ю предыдущую рабочую дату в MySQL? Пусть функция подписи является nth_previous_working_date (d ДАТА, п INT)Получите nth предыдущую рабочую дату в MySQL

Для 10 сентября 2015 года, функция должна возвращать 3 сентября 2015

+0

Проверка функции date_sub() 'в mysql –

+0

Что означает дата работы? Что, если бы они болели во вторник? – Drew

+0

^Я думаю, что он не угадывает о «рабочих» днях :) – splash58

ответ

0

Вы можете использовать функцию date_sub.

SELECT DATE_SUB('2015-09-10', INTERVAL 7 DAY); 

или просто использовать минус оператор

SELECT '2015-09-10' - INTERVAL 7 DAY 

See the working example.

0

Получение предыдущего без выходных дней рабочий день может быть сделано с футляром.

select case dayofweek(curdate() - interval 1 day) -- yesterday 
when 1 then curdate() - interval 3 day -- when sunday, go 2 more days before 
when 7 then curdate() - interval 2 day -- when saturday, go 1 more days before 
else curdate() - interval 1 day -- yesterday 
end 
Смежные вопросы