2012-04-23 5 views
0

Я хочу рассчитать количество дней между двумя датами, такими как начало и конец, но исключая выходные и праздничные дни. У меня есть таблица с праздничными днями. Я видел несколько примеров, как этотКак рассчитать разницу дат, исключая выходные и праздничные дни в mysql

 
select TIMEDIFF(date1,date2) from table 
where date1 not in (select holiday from holiday_table) and 
date2 not in (select holiday from holiday_table) and 
DAYOFWEEK(date1) not in (1,7) and DAYOFWEEK(date2) not in (1,7)

Но это не будет работать, потому что это займет всего две даты, которые начала и конца, однако ничего между ним уходит. Есть ли у вас какое-то другое предложение?

ответ

0

Я чувствую, как из вашего описания проблемы, она должна быть создана в UDF и логике должно быть так:

  • Проверьте, сколько дат попадают между днями select count(1) from holiday_table where holiday between @start and @end
  • Затем возьмите реальная разница между @start и @end и вычитает количество от: holiday_table
+0

ОК, что означает, что я должен использовать UDF, но проблема в том, что я не являюсь феминером с UDF. У вас есть пример в этом случае. Если это возможно, вы можете предоставить SQL-запрос для этого. Я думаю, это может быть полезно и для других людей. благодаря – Akrambek

Смежные вопросы