PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Retornar o carimbo de data/hora do Unix no PostgreSQL


No PostgreSQL, podemos usar o extract() função junto com a epoch argumento para retornar o timestamp Unix.

Podemos retornar o carimbo de data/hora do Unix com base na data/hora atual ou podemos obtê-lo com base em outra data/hora especificada.

O timestamp Unix (também conhecido como Unix Epoch time, Unix time ou POSIX time) é o número de segundos decorridos desde 00:00:00 de quinta-feira, 1 de janeiro de 1970, Coordinated Universal Time (UTC).

Obter o carimbo de data/hora atual do Unix


Aqui está um exemplo de como obter o timestamp Unix da data e hora atuais:
SELECT extract(epoch from now());

Resultado:
1650152298.430101

Valores de data


Aqui está um exemplo de como obter o timestamp Unix de uma date especificada valor:
SELECT extract(epoch from date '2030-08-15');

Resultado:
1912982400

Quando usado com date valores, epoch retorna o número nominal de segundos desde 1970-01-01 00:00:00, sem considerar o fuso horário ou as regras de horário de verão.

Valores de carimbo de data/hora


Aqui está um exemplo de como obter o timestamp Unix de um timestamp especificado valor:
SELECT extract(epoch from timestamp '2030-08-15 03:30:45');

Resultado:
1912995045

Quando usado com timestamp valores, epoch retorna o número nominal de segundos desde 1970-01-01 00:00:00, sem considerar o fuso horário ou as regras de horário de verão. Isso é o mesmo que usar date valores.

Carimbo de data e hora com valor de fuso horário


Aqui está um exemplo de como obter o timestamp Unix de um timestamp with time zone especificado valor:
SELECT extract(
    epoch from timestamp with time zone '2030-08-15 03:30:45.12-08'
    );

Resultado:
1913023845.12

Quando usado com timestamp with time zone valores, epoch retorna o número de segundos desde 1970-01-01 00:00:00 UTC (negativo para timestamps antes disso)

Intervalos


Também podemos obter um timestamp Unix de um interval valor:
SELECT extract(epoch from interval '7 days 2 hours');

Resultado:
612000

Quando usado com interval valores, epoch retorna o número total de segundos no intervalo.