sql >> Database teknologi >  >> RDS >> PostgreSQL

Sådan konverteres et Unix-tidsstempel til en dato/tidsværdi i PostgreSQL

I PostgreSQL kan vi bruge to_timestamp() funktion til at konvertere en Unix-tidsstempelværdi til en dato/tidsværdi.

Unix-tidsstemplet (også kendt som Unix Epoch-tid, Unix-tid eller POSIX-tid) er det antal sekunder, der er gået siden 00:00:00 torsdag den 1. januar 1970, Coordinated Universal Time (UTC).

Eksempel

Her er et simpelt eksempel til at demonstrere:

SELECT to_timestamp(1912995045);

Resultat:

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

I dette tilfælde bestod jeg en specifik Unix-tidsstempelværdi.

Her er et andet eksempel, der yderligere demonstrerer, hvordan resultatet afspejler Unix-tidsstempelværdien:

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

Resultat:

       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

I dette eksempel brugte vi now() for at udlæse den aktuelle dato og klokkeslæt. Vi brugte derefter extract() for at få Unix-tidsstemplet fra den dato og tidsværdi. Til sidst brugte vi to_timestamp() for at konvertere den tilbage til den oprindelige dato- og tidsværdi.

Konverter til dato

Vi kan også caste resultatet som en date værdi for at eliminere tidsdelen:

SELECT to_timestamp(1912995045)::date;

Resultat:

2030-08-15

  1. PostgreSQL -skal vises i GROUP BY-sætningen eller bruges i en aggregeret funktion

  2. Vis alle nullbare kolonner i en SQL Server-database

  3. Sådan kommenterer du i SQL

  4. FEJL 1044 (42000):Adgang nægtet for brugeren ''@'localhost' til databasen 'db'