postgres entero convertir convert cast cadena sql postgresql date timestamp bigint

entero - postgresql cast to bigint



¿Cómo formatear el campo de Bigint en una fecha en Postgresql? (3)

Tengo una tabla con un campo de tipo bigint. Este campo almacena una marca de tiempo. Quiero fechar el campo de esta manera:

to_char( bigint_field,''DD/MM/YYYY HH24:MI:SS'')

Obtuve el siguiente error :

ERROR: multiple decimal points État SQL :42601


Esto depende de lo que represente el valor de bigint: compensación del tiempo de época, o no.

select to_timestamp(20120822193532::text, ''YYYYMMDDHH24MISS'')

devoluciones

"2012-08-22 19: 35: 32 + 00"


Lo hice así:

to_timestamp(to_char(20120822193532, ''9999-99-99 99:99:99''),''YYYY-MM-DD HH24:MI:SS'')

el resultado es así:

2012-08-22 19:35:32

también puede usar esto en seleccionar statemant, simplemente intercambie el número con la columna de su base de datos.

Explicación paso a paso:

to_char(20120822193532, ''9999-99-99 99:99:99'')

Esto creará una cadena como esta:

"2012-08-22 19:35:32"

ahora podemos fácilmente convertir esto en una marca de tiempo:

to_timestamp(''2012-08-22 19:35:32'',''YYYY-MM-DD HH24:MI:SS'')

El resultado será el mismo que antes, pero ahora es una marca de tiempo.

Además, si usa esto para un comando como

CREATE TABLE table2 AS SELECT to_timestamp(to_char(tb1.date, ''9999-99-99 99:99:99''),''YYYY-MM-DD HH24:MI:SS'') AS realDate FROM table1 AS tb1;

puede terminar con timstamptz (marca de tiempo con zona horaria) en lugar de indicación de fecha y hora (indicación de fecha y hora sin zona horaria). Puedes cambiarlo así:

ALTER TABLE table2 ALTER realDate SET DATA TYPE timestamp USING realDate;


TO_CHAR(TO_TIMESTAMP(bigint_field / 1000), ''DD/MM/YYYY HH24:MI:SS'')