sql >> Base de Datos >  >> RDS >> PostgreSQL

Devolver la marca de tiempo de Unix en PostgreSQL

En PostgreSQL, podemos usar extract() función junto con la epoch argumento para devolver la marca de tiempo de Unix.

Podemos devolver la marca de tiempo de Unix en función de la fecha/hora actual, o podemos obtenerla en función de otra fecha/hora especificada.

La marca de tiempo de Unix (también conocida como hora de época de Unix, hora de Unix o hora POSIX) es la cantidad de segundos que han transcurrido desde las 00:00:00 del jueves 1 de enero de 1970, hora universal coordinada (UTC).

Obtener la marca de tiempo Unix actual

Este es un ejemplo de cómo obtener la marca de tiempo de Unix a partir de la fecha y hora actuales:

SELECT extract(epoch from now());

Resultado:

1650152298.430101

Valores de fecha

Aquí hay un ejemplo de cómo obtener la marca de tiempo de Unix de una date específica valor:

SELECT extract(epoch from date '2030-08-15');

Resultado:

1912982400

Cuando se usa con date valores, epoch devuelve el número nominal de segundos desde 1970-01-01 00:00:00, sin tener en cuenta la zona horaria o las reglas de horario de verano.

Valores de marca de tiempo

Aquí hay un ejemplo de cómo obtener la marca de tiempo de Unix de una timestamp específica valor:

SELECT extract(epoch from timestamp '2030-08-15 03:30:45');

Resultado:

1912995045

Cuando se usa con timestamp valores, epoch devuelve el número nominal de segundos desde 1970-01-01 00:00:00, sin tener en cuenta la zona horaria o las reglas de horario de verano. Esto es lo mismo que cuando se usa date valores.

Marca de tiempo con valor de zona horaria

Este es un ejemplo de cómo obtener la marca de tiempo de Unix de una timestamp with time zone específica valor:

SELECT extract(
    epoch from timestamp with time zone '2030-08-15 03:30:45.12-08'
    );

Resultado:

1913023845.12

Cuando se usa con timestamp with time zone valores, epoch devuelve el número de segundos desde 1970-01-01 00:00:00 UTC (negativo para las marcas de tiempo anteriores)

Intervalos

También podemos obtener una marca de tiempo de Unix de un interval valor:

SELECT extract(epoch from interval '7 days 2 hours');

Resultado:

612000

Cuando se usa con interval valores, epoch devuelve el número total de segundos en el intervalo.