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

Få et tidsstempel fra sammenkædning af dag- og tidskolonner

date og time typer

Hvis din Day er af typen date og din Time er af typen time , der er en meget enkel løsning:

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

Du kan bare tilføje date og time for at få et timestamp [without time zone] (som fortolkes i henhold til tidszoneindstillingen for din session).

Og strengt taget er udtrækning af epoken ikke relateret til dit spørgsmål i sig selv.
date + time resultere i et timestamp , det er det.

Strengtyper

Hvis du taler om strenge bogstaver eller text / varchar kolonner, brug:

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

Din formular gør ikke arbejde

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

Dette ville virke:

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

Jeg citerer manualen om typeafstøbninger :

Fed fremhævelse mine.
Kidsen af ​​det:brug hellere en af ​​de to første syntaksvarianter.



  1. Mysql - sekvens af flere kolonneindekser

  2. Bedre forståelse - Class.forName(com.mysql.jdbc.Driver).newInstance ();

  3. Hvad er standardstørrelsen for en varchar2-input til Oracle-lagret procedure, og kan den ændres?

  4. hvordan man indstiller standardværdi for teksttype i mysql