PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Obtenir un horodatage à partir de la concaténation des colonnes de jour et d'heure

date et time type

Si votre Day est de type date et votre Time est de type time , il existe une solution très simple :

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

Vous pouvez simplement ajouter date et time pour obtenir un timestamp [without time zone] (qui est interprété en fonction du paramètre de fuseau horaire de votre session).

Et, à proprement parler, l'extraction de l'époque n'a aucun rapport avec votre question en soi.
date + time résulte en un timestamp , c'est tout.

Types de chaînes

Si vous parlez de littéraux de chaîne ou de text / varchar colonnes, utilisez :

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));

Votre formulaire ne le fait pas travail

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

Cela fonctionnerait :

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

Je cite le manuel sur les conversions de type :

Gras gras de la mienne.
L'essentiel :utilisez plutôt l'une des deux premières variantes de syntaxe.