quarta-feira, 22 de maio de 2013

Converter segundos (decimal) para timestamp


Pessoal,

Vou descrever como converter um campo em segundos para timestamp.
Imaginem um campo que guarda a data do último boot de um servidor, mas ao invés de estar no formato timestamp, ele está guardado como um DECIMAL(10).

Exemplo;

[db2inst1@myserver ~]$ db2 "select BOOT_TIME from mytable fetch first row only"

BOOT_TIME
------------
 1231982035.

  1 record(s) selected.

Esse valor corresponde a quantidade de segundos que se passaram após a data de 1/1/1970.

Para transforma-lo no timestamp, podemos converter esse campo diretamente, passando como parametro o valor guardado:

[db2inst1@myserver ~]$ db2 "select BOOT_TIME, timestamp('1970-01-01','00:00:00') + BOOT_TIME SECONDS as timestamp from mytable fetch first row only"

BOOT_TIME    TIMESTAMP
------------ --------------------------
 1231982035. 2009-01-15-01.13.55.000000

  1 record(s) selected.


Ou seja, o valor 1231982035 corresponde a data 2009-01-15-01.13.55.000000, no formato YYYY-MM-DD-HH.MM.SS.MMMMMM.

Abs.

Nenhum comentário:

Postar um comentário