日付 およびtime タイプ
日の場合 タイプは date
そしてあなたの時間 タイプは time
、非常に簡単な解決策があります:
SELECT EXTRACT(EPOCH FROM (day + time));
dateを追加するだけです およびtime タイムスタンプ[タイムゾーンなし]を取得するには (これは、セッションのタイムゾーン設定に従って解釈されます)。
そして、厳密に言えば、エポックを抽出すること自体はあなたの質問とは無関係です。日付 +時間コード> 結果はtimestamp 、それだけです。
文字列タイプ
文字列リテラルまたはtextについて話している場合 / varchar 列、使用:
SELECT EXTRACT(EPOCH FROM ('2013-07-18' || ' ' || '21:52:12')::timestamp);
または
SELECT EXTRACT(EPOCH FROM cast('2013-07-18' ||' '|| '21:52:12' AS timestamp));
あなたのフォームはありません 仕事
SELECT EXTRACT(EPOCH FROM TIMESTAMP ('2013-07-18' || ' ' || '21:52:12')); これはうまくいくでしょう:
SELECT EXTRACT(EPOCH FROM "timestamp" ('2013-07-18' || ' ' || '21:52:12'));
大胆な強調私のもの。
その要点:最初の2つの構文バリアントのいずれかを使用してください。