PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Ottieni un timestamp dalla concatenazione delle colonne giorno e ora

date e time tipi

Se il tuo Day è di tipo date e il tuo Time è di tipo time , c'è una soluzione molto semplice:

SELECT EXTRACT(EPOCH FROM (day + time));

Puoi semplicemente aggiungere date e time per ottenere un timestamp [without time zone] (che viene interpretato in base all'impostazione del fuso orario della sessione).

E, a rigor di termini, l'estrazione dell'epoca non è correlata alla tua domanda di per sé.
date + time risulta in un timestamp , ecco fatto.

Tipi di stringhe

Se stai parlando di stringhe letterali o text / varchar colonne, usa:

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

o

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

Il tuo modulo non lavoro

SELECT EXTRACT(EPOCH FROM TIMESTAMP ('2013-07-18' || ' ' || '21:52:12'));

Questo funzionerebbe:

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

Cito il manuale sui cast di tipo :

Enfasi in grassetto la mia.
Il succo:usa piuttosto una delle prime due varianti di sintassi.