Ich empfehle Ihnen, eine Funktion für die Verwendung zu erstellen, wann immer Sie wollen und weniger schreiben;)
Dieser Code oben erstellt eine SQL-Funktion, die die Anzahl der Wochenendtage (Sa, So) zählt und zurückgibt. Genau so haben Sie mehr Flexibilität, um diese Funktion zu nutzen.
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;
Danach können Sie die Funktion nutzen nur die Anzahl der Wochentage in einem Intervall zurückzukehren. Hier ist das Beispiel zu verwenden:
SELECT <YourSchemaNameOptional>.count_full_weekend_days('2017-09-11', '2017-09-25') as days; --> RES: 4
Diese Auswahl vier zurückgeben muss, da der erste und der zweite Tag Montag, und wir haben zwei Samstagen und Sonntagen 2 zwischen ihnen.
Nun zurückzukehren nur Werktage (ohne Wochenende), wie Sie wollen, nur eine Subtraktion machen, wie im folgenden Beispiel:
SELECT (date '2017-09-25' - date '2017-09-11') - <YourSchemaName>.count_full_weekend_days('2017-09-11', '2017-09-25'); --> RES: 14 - 4 = 10