Я предлагаю вам создать функцию для использования в любое время и писать меньше; )
Этот код выше создаст функцию sql, которая будет подсчитывать и возвращать количество выходных дней (сб, вс).
Просто у вас будет больше возможностей использовать эту функцию.
CREATE OR REPLACE FUNCTION <YourSchemaNameOptional>.count_full_weekend_days(date, date)
RETURNS bigint AS
$BODY$
select COUNT(MySerie.*) as Qtde
from (select CURRENT_DATE + i as Date, EXTRACT(DOW FROM CURRENT_DATE + i) as DiaDate
from generate_series(date ($1) - CURRENT_DATE, date ($2) - CURRENT_DATE ) i) as MySerie
WHERE MySerie.DiaDate in (6,0);
$BODY$
LANGUAGE 'SQL' IMMUTABLE STRICT;
После этого вы можете использовать функцию , чтобы возвращать только количество выходных дней в интервале.
Вот пример для использования:
SELECT <YourSchemaNameOptional>.count_full_weekend_days('2017-09-11', '2017-09-25') as days; --> RES: 4
Этот выбор должен возвращать четыре, потому что первый и второй день - понедельник, а между ними 2 субботы и 2 воскресенья.
Теперь, для возврата только рабочих дней (без выходных), , как вы хотите , просто сделайте вычитание, как в примере ниже:
SELECT (date '2017-09-25' - date '2017-09-11' ) - <YourSchemaName>.count_full_weekend_days('2017-09-11', '2017-09-25'); --> RES: 14 - 4 = 10