Convertir de la época de Unix a la fecha en PostgreSQL

Bilal Shahid 15 febrero 2024
  1. ¿Qué es la época de Unix?
  2. Convertir de Unix Epoch a la fecha en PostgreSQL
  3. Época desde la hora actual
  4. Obtener fecha y hora de Epoch
  5. la función to_timestamp()
  6. el enfoque de marca de tiempo con zona horaria
  7. Conclusión
Convertir de la época de Unix a la fecha en PostgreSQL

PostgreSQL ofrece numerosas funciones de fecha y hora para los usuarios. Estas funciones y operadores están especialmente diseñados para ayudar al usuario con cálculos dinámicos.

Las funciones de fecha y hora son una de las funciones más utilizadas en software y aplicaciones.

Por ejemplo, un simple cálculo de la edad del usuario requiere una función de fecha y hora en el back-end para realizar todos los cálculos necesarios.

La fecha actual se compara con la fecha de nacimiento del usuario para calcular la edad. Varias otras aplicaciones requieren el uso de funciones y operadores de fecha y hora.

Este artículo ha sido especialmente seleccionado para ayudarlo a calcular la fecha de la época de Unix.

¿Qué es la época de Unix?

Antes de continuar con el artículo, es necesario aclarar qué es Unix Epoch. El tiempo Unix es un sistema informático que se utiliza para describir un punto en el tiempo.

Es el número de segundos que han pasado desde la Época de Unix. Sin embargo, este sistema de tiempo no cuenta los segundos bisiestos.

Devuelve el número de segundos, excluyendo los segundos bisiestos que han transcurrido desde la Época de Unix.

Queda la pregunta, ¿qué es la época de Unix? Unix Epoch es una fecha y hora fijas: 1 de enero de 1970, a las 00:00:00 UTC.

Los ingenieros establecieron arbitrariamente la época de Unix para coordinar y establecer una fecha uniforme para el comienzo de los tiempos. En otras palabras, ayuda a coordinar la fecha y la hora en todo el mundo, ya que el número de segundos transcurridos desde la fecha de Unix Epoch sigue siendo el mismo para una hora particular en todo el mundo.

Convertir de Unix Epoch a la fecha en PostgreSQL

Existen numerosos métodos para obtener la fecha actual en PostgreSQL. Antes de pasar a la instrucción SQL y la función utilizada para convertir la época de Unix a la fecha actual, a continuación se describen en detalle algunas instrucciones SQL necesarias.

Cómo obtener la hora actual

Si desea obtener la fecha de Unix Epoch, es esencial comprender cómo obtener la hora actual en PostgreSQL. La hora actual se puede utilizar para calcular la fecha.

La siguiente declaración se usa en PostgreSQL para obtener la hora actual.

SELECT now();

La función ahora() se usa en PostgreSQL para obtener la hora actual. Devuelve la marca de tiempo, que se utiliza para calcular la fecha más tarde.

El resultado de la siguiente consulta es el siguiente:

Fecha y hora actual

Época desde la hora actual

Unix Epoch se ha descrito en detalle en la sección anterior. La siguiente declaración se puede utilizar para calcular el número de segundos transcurridos desde Unix Epoch.

SELECT EXTRACT(epoch from now());

La consulta SQL se puede ejecutar en PostgreSQL para obtener la cantidad de segundos transcurridos desde la época de Unix. La función ahora() se ha utilizado para obtener la hora actual junto con la época en la instrucción SQL.

El resultado de la siguiente consulta es el siguiente:

Número de segundos transcurridos

Obtener fecha y hora de Epoch

La sentencia SQL EXTRACT, junto con epoch y now(), devuelve el número de segundos transcurridos desde la Epoch de Unix. Sin embargo, ¿qué se debe hacer si se quiere obtener la fecha y la hora de la Época?

Puede utilizar dos métodos para obtener la fecha y la hora de la época.

  1. La función to_timestamp()
  2. La marca de tiempo con el enfoque de zona horaria

Ambos procedimientos se describen a continuación.

la función to_timestamp()

La función to_timestamp() se puede usar junto con epoch y now() para obtener la fecha y la hora de Unix Epoch.

La función to_timestamp() toma un argumento de doble precisión. Convierte Unix Epoch a marca de tiempo con zona horaria.

Obtener fecha y hora usando la función to_timestamp()

La siguiente declaración se puede ejecutar en PostgreSQL para obtener la fecha y la hora de la Época.

SELECT to_timestamp(extract(epoch from now()));

El resultado de la consulta es el siguiente:

marca de tiempo

Obtenga la fecha de época usando la función to_timestamp()

Si solo está interesado en obtener la fecha de la época, puede usar la función to_timestamp() con un enfoque ligeramente diferente. La siguiente declaración muestra cómo obtener la fecha de la época utilizando la función to_timestamp().

SELECT to_timestamp(extract(epoch from now()))::date;

Esta consulta solo devuelve la fecha de la época de Unix. El resultado de la consulta se encuentra a continuación.

Fecha

el enfoque de marca de tiempo con zona horaria

El segundo enfoque que se puede usar para convertir la época de Unix en fecha u hora es usar el enfoque "marca de tiempo con zona horaria". Realiza la misma función que la función to_timestamp().

Este enfoque es una alternativa a la función to_timestamp(). Si un enfoque no funciona, puede seguir el otro enfoque para hacer el trabajo.

Obtener fecha y hora usando el enfoque de marca de tiempo

La siguiente declaración se puede ejecutar para obtener la fecha y la hora de Unix Epoch.

SELECT timestamp with time zone 'epoch' + extract(epoch from now()) * interval '1 second';

Este enfoque añade segundos a la época. Devuelve la fecha y la hora de Unix Epoch.

El resultado de la consulta es el siguiente:

Enfoque de marca de tiempo

Obtener la fecha de Epoch usando el enfoque de marca de tiempo

Si solo está interesado en obtener la fecha de la época, el enfoque de la marca de tiempo se puede modificar de manera ligeramente diferente para recibir el resultado requerido.

La siguiente instrucción realiza la tarea.

SELECT (timestamp with time zone 'epoch' + extract(epoch from now()) * interval '1 second') :: date;

La declaración devuelve solo la fecha de la Época. Por lo tanto, esta declaración se puede utilizar si no desea la hora junto con la fecha.

O, como se mencionó en la sección anterior, se puede usar una declaración similar con la función to_timestamp().

El resultado de la consulta es el siguiente:

Enfoque de marca de tiempo - Fecha

Conclusión

Numerosas funciones de fecha y hora en PostgreSQL ayudan al usuario con diferentes cálculos.

La función to_timestamp() y el enfoque "timestamp with time zone" se utilizaron para este artículo para obtener la fecha y la hora de la época. Cada paso ha sido explicado en detalle para que el usuario lo siga.

Bilal Shahid avatar Bilal Shahid avatar

Hello, I am Bilal, a research enthusiast who tends to break and make code from scratch. I dwell deep into the latest issues faced by the developer community and provide answers and different solutions. Apart from that, I am just another normal developer with a laptop, a mug of coffee, some biscuits and a thick spectacle!

GitHub

Artículo relacionado - PostgreSQL Timestamp