In PostgreSQL, possiamo usare to_timestamp()
funzione per convertire un valore di timestamp Unix in un valore di data/ora.
Il timestamp Unix (noto anche come Unix Epoch time, Unix time o POSIX time) è il numero di secondi trascorsi dalle 00:00:00 di giovedì 1 gennaio 1970, Coordinated Universal Time (UTC).
Esempio
Ecco un semplice esempio da dimostrare:
SELECT to_timestamp(1912995045);
Risultato:
2030-08-15 03:30:45+00
In questo caso ho passato un valore di timestamp Unix specifico.
Ecco un altro esempio che dimostra ulteriormente come il risultato rifletta il valore del timestamp Unix fornito:
SELECT
now() AS "Current Date/Time",
extract(epoch from now()) AS "Unix Timestamp",
to_timestamp(extract(epoch from now())) AS "And back again...";
Risultato:
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
In questo esempio abbiamo usato now()
per emettere la data e l'ora correnti. Abbiamo quindi utilizzato extract()
per ottenere il timestamp Unix da quel valore di data e ora. Infine, abbiamo usato to_timestamp()
per riconvertirlo al valore di data e ora originale.
Converti in data
Possiamo anche trasmettere il risultato come date
valore per eliminare la parte temporale:
SELECT to_timestamp(1912995045)::date;
Risultato:
2030-08-15