with RECURSIVE date_series as (
select '2005-07-01' as date union all
select DATE_ADD(date, interval 1 day)
from date_series
where date < '2005-07-31'
)
select count(*) as weekend_days
from date_series
where DAYOFWEEK(date) in (1, 7)
;
show status like 'Last_query_cost';