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 つの構文バリアントのいずれかを使用します。