date
und time
Typen
Wenn Ihr Day
ist vom Typ date
und Ihre Time
ist vom Typ time
, gibt es eine sehr einfache Lösung:
SELECT EXTRACT(EPOCH FROM (day + time));
Sie können einfach date
hinzufügen und time
um einen timestamp [without time zone]
zu erhalten (die entsprechend der Zeitzoneneinstellung Ihrer Sitzung interpretiert wird).
Und streng genommen hat das Extrahieren der Epoche nichts mit Ihrer Frage an sich zu tun.date
+ time
ergibt einen timestamp
, das war's.
String-Typen
Wenn Sie über String-Literale oder text
sprechen / varchar
Spalten, verwenden Sie:
SELECT EXTRACT(EPOCH FROM ('2013-07-18' || ' ' || '21:52:12')::timestamp);
oder
SELECT EXTRACT(EPOCH FROM cast('2013-07-18' ||' '|| '21:52:12' AS timestamp));
Ihr Formular nicht Arbeit
SELECT EXTRACT(EPOCH FROM TIMESTAMP ('2013-07-18' || ' ' || '21:52:12'));
Das würde funktionieren:
SELECT EXTRACT(EPOCH FROM "timestamp" ('2013-07-18' || ' ' || '21:52:12'));
Ich zitiere das Handbuch zu Typumwandlungen :
Fette Hervorhebung von mir.
Fazit:Verwenden Sie lieber eine der ersten beiden Syntaxvarianten.