PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Comment convertir un horodatage Unix en une valeur de date/heure dans PostgreSQL

Dans PostgreSQL, nous pouvons utiliser le to_timestamp() fonction pour convertir une valeur d'horodatage Unix en une valeur de date/heure.

L'horodatage Unix (également appelé heure d'époque Unix, heure Unix ou heure POSIX) est le nombre de secondes qui se sont écoulées depuis 00:00:00 jeudi 1er janvier 1970, temps universel coordonné (UTC).

Exemple

Voici un exemple simple pour illustrer :

SELECT to_timestamp(1912995045);

Résultat :

2030-08-15 03:30:45+00

Dans ce cas, j'ai passé une valeur d'horodatage Unix spécifique.

Voici un autre exemple qui montre plus en détail comment le résultat reflète la valeur d'horodatage Unix fournie :

SELECT 
    now() AS "Current Date/Time",
    extract(epoch from now()) AS "Unix Timestamp",
    to_timestamp(extract(epoch from now())) AS "And back again...";

Résultat :

       Current Date/Time       |  Unix Timestamp   |       And back again...       
-------------------------------+-------------------+-------------------------------
 2022-04-19 19:25:27.068737+00 | 1650396327.068737 | 2022-04-19 19:25:27.068737+00

Dans cet exemple, nous avons utilisé now() pour afficher la date et l'heure actuelles. Nous avons ensuite utilisé extract() pour obtenir l'horodatage Unix à partir de cette valeur de date et d'heure. Enfin, nous avons utilisé to_timestamp() pour le reconvertir à la valeur de date et d'heure d'origine.

Convertir en date

Nous pouvons également convertir le résultat en une date valeur pour éliminer la partie horaire :

SELECT to_timestamp(1912995045)::date;

Résultat :

2030-08-15