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.