sql >> Database >  >> RDS >> PostgreSQL

Een Unix-tijdstempel converteren naar een datum/tijd-waarde in PostgreSQL

In PostgreSQL kunnen we de to_timestamp() . gebruiken functie om een ​​Unix-tijdstempelwaarde om te zetten in een datum/tijd-waarde.

De Unix-tijdstempel (ook bekend als Unix Epoch-tijd, Unix-tijd of POSIX-tijd) is het aantal seconden dat is verstreken sinds 00:00:00 donderdag 1 januari 1970 Coordinated Universal Time (UTC).

Voorbeeld

Hier is een eenvoudig voorbeeld om te demonstreren:

SELECT to_timestamp(1912995045);

Resultaat:

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

In dit geval heb ik een specifieke Unix-tijdstempelwaarde doorgegeven.

Hier is nog een voorbeeld dat verder laat zien hoe het resultaat de verstrekte Unix-tijdstempelwaarde weerspiegelt:

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

Resultaat:

       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 dit voorbeeld gebruikten we now() om de huidige datum en tijd uit te voeren. We gebruikten toen extract() om de Unix-tijdstempel van die datum- en tijdwaarde te krijgen. Ten slotte gebruikten we to_timestamp() om het terug te zetten naar de oorspronkelijke datum- en tijdwaarde.

Converteren naar datum

We kunnen het resultaat ook casten als een date waarde om het tijdgedeelte te elimineren:

SELECT to_timestamp(1912995045)::date;

Resultaat:

2030-08-15

  1. Hoe Oracle MD5 hash-functie aan te roepen?

  2. Stel PDO in om standaard uitzonderingen te genereren

  3. Datums effectief converteren tussen UTC en lokale (dwz PST) tijd in SQL 2005

  4. Webinar:nieuwe functies in PostgreSQL 11 [vervolgen]