Convertir de la época de Unix a la fecha en PostgreSQL
-
¿Qué es la
época
de Unix? -
Convertir de Unix
Epoch
a la fecha en PostgreSQL -
Época
desde la hora actual -
Obtener fecha y hora de
Epoch
-
la función
to_timestamp()
- el enfoque de marca de tiempo con zona horaria
- Conclusión
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:
É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:
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
.
- La función
to_timestamp()
- 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:
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.
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:
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:
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.
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