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