PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Obter um carimbo de data/hora da concatenação das colunas de dia e hora

date e time tipos


Se o seu Day é do tipo date e seu Time é do tipo time , existe uma solução muito simples:
SELECT EXTRACT(EPOCH FROM (day + time));

Você pode simplesmente adicionar date e time para obter um timestamp [without time zone] (que é interpretado de acordo com a configuração de fuso horário da sua sessão).

E, estritamente falando, extrair a época não está relacionado à sua pergunta em si.
date + time resultar em um timestamp , é isso.

Tipos de string


Se você está falando sobre literais de string ou text / varchar colunas, use:
SELECT EXTRACT(EPOCH FROM ('2013-07-18' || ' ' || '21:52:12')::timestamp);

ou
SELECT EXTRACT(EPOCH FROM cast('2013-07-18' ||' '|| '21:52:12' AS timestamp));

Seu formulário não trabalhar
SELECT EXTRACT(EPOCH FROM TIMESTAMP ('2013-07-18' || ' ' || '21:52:12'));

Isso funcionaria:
SELECT EXTRACT(EPOCH FROM "timestamp" ('2013-07-18' || ' ' || '21:52:12'));

Cito o manual sobre conversões de tipo :

A ênfase em negrito é minha.
A essência disso:use uma das duas primeiras variantes de sintaxe.