PostgreSQLのTimestamp型をC言語アプリケーションで扱う

PostgreSQLの公式ドキュメントに記述がありますが、timestamp型はUNIX時刻のように、ある基点時刻からの経過秒数を表しています。

timestampの値は2000-01-01深夜を基準にした経過秒数として格納されます。

ということで、libpqを用いて取得されたtimestamp型の値に"2000-01-01T00:00:00ZのUNIX時刻"を足せばUNIX時刻に変換できます。

ただし、

timestampの値が8バイト整数(現在のデフォルト)で格納されていれば、すべての値についてμ秒精度が有効です。

との記述通り、timestamp型の値はマイクロ秒表現になっているので1000000で割ってから946684800(2000-01-01T00:00:00ZのUNIX時刻)を足すことでUNIX時刻に変換できます。