テキストファイルに○○:○○-○○:○○、○○:○○-○○:○○、…とメモしてあり、合計時間を出す時。自分の暗算が信用できないので、PostgreSQLで ↓ こんな風にやっちゃいます。
-- time intervals to be summed up
-- 6/4 18:00-20:30
-- 6/8 13:30-14:30, 15:00-17:05

select sum(times[2] - times[1])
from concat('

-- 6/4 18:00-20:30
-- 6/8 13:30-14:30, 15:00-17:05

'), cast(
    regexp_matches(concat, '(\d+:\d+)-(\d+:\d+)', 'g') as time[]
) as times;
+----------+
|   sum    |
+----------+
| 05:35:00 |
+----------+
(1 row)


テンプレは次のとおり。時刻は24時間形式。午前0時をまたぐ時はプラス24(22:0026:00等)の想定です。
select sum(times[2] - times[1])
from concat('

メモした時間帯を含むテキストを、ここにペースト

'), cast(
    regexp_matches(concat, '(\d+:\d+)-(\d+:\d+)', 'g') as time[]
) as times;


簡単な内容ですが、順を追って説明すると。

(1)テキストをクエリに突っ込む。改行・タブがあっても問題なくて便利。
select *
from concat('

-- 時間帯を含むメモ部分
-- 6/4 18:00-20:30
-- 6/8 13:30-14:30, 15:00-17:05

');
+---------------------------------+
|             concat              |
+---------------------------------+
|                                +|
|                                +|
| -- 時間帯を含むメモ部分        +|
| -- 6/4 18:00-20:30             +|
| -- 6/8 13:30-14:30, 15:00-17:05+|
|                                +|
|                                 |
+---------------------------------+
(1 row)


(2)テキストから正規表現で時間帯を抽出。パターンを、メモした形式に合わせて適宜修正します。regexp_matches関数の第三引数にgオプションを入れて全部マッチ。
select reg
from concat('

-- 6/4 18:00-20:30
-- 6/8 13:30-14:30, 15:00-17:05

'), regexp_matches(concat, '(\d+:\d+)-(\d+:\d+)', 'g') as reg;
+---------------+
|      reg      |
+---------------+
| {18:00,20:30} |
| {13:30,14:30} |
| {15:00,17:05} |
+---------------+
(3 rows)


(3)regexp_matches関数の結果、マッチした箇所が1行ずつになり、そのうちカッコ内が配列の1要素ずつになります。時間を計算できるよう、time型の配列にキャスト。で先頭要素(開始時間)と2番目(終了時間)に分けます。
select times[1], times[2]
from concat('

-- 6/4 18:00-20:30
-- 6/8 13:30-14:30, 15:00-17:05

'), cast(
    regexp_matches(concat, '(\d+:\d+)-(\d+:\d+)', 'g') as time[]
) as times;
+----------+----------+
|  times   |  times   |
+----------+----------+
| 18:00:00 | 20:30:00 |
| 13:30:00 | 14:30:00 |
| 15:00:00 | 17:05:00 |
+----------+----------+
(3 rows)


ここまで来れば簡単。2つの時刻の差を出し、sum関数で合計するだけ。その結果が冒頭の画像・クエリになります。
select sum(終了時間 - 開始時間)
from ...

PostgreSQLには、時刻だけ(日付を持たない)のtime型があってよかった。ないと、適当な日付を付けて計算する羽目になるので。またregexp_matches関数が、マッチ箇所を2次元(行と配列)で返すのも重要ですね。