V PostgreSQL můžeme použít extract()
funkce spolu s epoch
argument pro návrat Unixového časového razítka.
Unixové časové razítko můžeme vrátit na základě aktuálního data/času, nebo jej můžeme získat na základě jiného zadaného data/času.
Unixové časové razítko (také známé jako Unix Epoch time, Unix time nebo POSIX time) je počet sekund, které uplynuly od 00:00:00 čtvrtek 1. ledna 1970 koordinovaného světového času (UTC).
Získejte aktuální časové razítko Unix
Zde je příklad získání časového razítka Unix z aktuálního data a času:
SELECT extract(epoch from now());
Výsledek:
1650152298.430101
Hodnoty data
Zde je příklad získání časového razítka Unix od zadaného date
hodnota:
SELECT extract(epoch from date '2030-08-15');
Výsledek:
1912982400
Při použití s date
hodnoty, epoch
vrátí nominální počet sekund od 1970-01-01 00:00:00, bez ohledu na časové pásmo nebo pravidla letního času.
Hodnoty časového razítka
Zde je příklad získání časového razítka Unix ze zadaného timestamp
hodnota:
SELECT extract(epoch from timestamp '2030-08-15 03:30:45');
Výsledek:
1912995045
Při použití s timestamp
hodnoty, epoch
vrátí nominální počet sekund od 1970-01-01 00:00:00, bez ohledu na časové pásmo nebo pravidla letního času. Je to stejné jako při použití date
hodnoty.
Časové razítko s hodnotou časového pásma
Zde je příklad získání časového razítka Unix ze zadaného timestamp with time zone
hodnota:
SELECT extract(
epoch from timestamp with time zone '2030-08-15 03:30:45.12-08'
);
Výsledek:
1913023845.12
Při použití s timestamp with time zone
hodnoty, epoch
vrátí počet sekund od 1970-01-01 00:00:00 UTC (záporné pro časová razítka před tím)
Intervaly
Můžeme také získat unixové časové razítko z interval
hodnota:
SELECT extract(epoch from interval '7 days 2 hours');
Výsledek:
612000
Při použití s interval
hodnoty, epoch
vrátí celkový počet sekund v intervalu.