dateとtime種類
yourDayが typedateで、 yourTimeがtype の場合time、非常に簡単な解決策があります。
SELECT EXTRACT(EPOCH FROM (day + time));
dateとを追加するだけtimeで a を取得できtimestamp [without time zone]ます (セッションのタイムゾーン設定に従って解釈されます)。
そして、厳密に言えば、エポックを抽出することは、質問自体とは無関係です。
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'));
タイプキャストに関するマニュアルを引用します:
関数のような構文を使用して型キャストを指定することもできます。
typename ( expression )
ただし、これは、名前が関数名としても有効な型に対してのみ機能します。たとえば、double precisionこのように使用することはできませんが、同等のものは使用float8できます。intervalまた、 、time、および
という名前は、構文上の競合のため、timestamp二重引用符で囲まれている場合にのみこの方法で使用できます。したがって、関数のようなキャスト構文を使用すると矛盾が生じるため、おそらく避けるべきです。
大胆強調鉱山。
その要点: 代わりに、最初の 2 つの構文バリアントのいずれかを使用します。