Oblicz godziny pracy między 2 datami w PostgreSQL

Opracowuję algorytm z Postgres (PL / pgSQL) i muszę obliczyć liczbę godzin pracy między 2 znacznikami czasu, biorąc pod uwagę, że weekendy nie działają, a pozostałe dni są liczone tylko od 8 rano do 15 wieczorem.

Przykłady:

Od 3 grudnia o 14:00 do 4 grudnia o 9:00 należy liczyć 2 godziny:

3rd = 1, 4th = 1

Od 3 grudnia o 15:00 do 7 grudnia o 8:00 należy liczyć 8 godzin:

3rd = 0, 4th = 8, 5th = 0, 6th = 0, 7th = 0

Byłoby wspaniale rozważyć również ułamki godzin.

questionAnswers(3)

yourAnswerToTheQuestion