date och time typer
Om din Day är av typen date
och din Time är av typen time
, det finns en mycket enkel lösning:
SELECT EXTRACT(EPOCH FROM (day + time));
Du kan bara lägga till date och time för att få en timestamp [without time zone] (vilket tolkas enligt tidszonsinställningen för din session).
Och strängt taget är att extrahera epoken inte relaterat till din fråga i sig.date + time resultera i en timestamp , det är allt.
Strängtyper
Om du pratar om strängliteraler eller text / varchar kolumner, använd:
SELECT EXTRACT(EPOCH FROM ('2013-07-18' || ' ' || '21:52:12')::timestamp);
eller
SELECT EXTRACT(EPOCH FROM cast('2013-07-18' ||' '|| '21:52:12' AS timestamp));
Ditt formulär inte arbete
SELECT EXTRACT(EPOCH FROM TIMESTAMP ('2013-07-18' || ' ' || '21:52:12')); Detta skulle fungera:
SELECT EXTRACT(EPOCH FROM "timestamp" ('2013-07-18' || ' ' || '21:52:12'));
Jag citerar handboken om typavgjutningar :
Djärv betoning min.
Grunken av det:använd hellre en av de två första syntaxvarianterna.