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.