Я думаю, что использовать таблицу календаря проще. Например, чтобы узнать, сколько будет по средам и четвергам в марте 2013 года, вы бы сделали что-то подобное.
select count(*)
from calendar
where cal_date between '2013-03-01' and '2013-03-31'
and day_of_week in ('Wed', 'Thu')
count
--
8
Чтобы увеличить его, чтобы подсчитать воскресенье, просто добавьте «Солнце» в пункт IN. (Хотя я должен сказать, что это поражает меня как-то странное, что нужно сделать.)
select count(*)
from calendar
where cal_date between '2013-03-01' and '2013-03-31'
and day_of_week in ('Wed', 'Thu', 'Sun')
count
--
13
Вот code for a calendar table in PostgreSQL. Вам придется перепрыгнуть через некоторые обручи, чтобы перевести его для MySQL, потому что MySQL не применяет ограничения CHECK.
это работает для вас? http://stackoverflow.com/questions/2546053/mysql-difference-between-two-timestamps-in-days – alpera
Google first -.- Первый результат делает то, что вы хотите - http://stackoverflow.com/questions/9757919/ count-days-between-two-dates-excluding-weekendends-mysql-only –
@alpera IMHO, dateiff count, сколько дней между датой. Мне нужны только благоприятные дни – Smiley