V PostgreSQL clock_timestamp()
je nestandardní časová funkce SQL, která vrací aktuální datum a čas.
Důležitým aspektem této funkce je, že její výsledek se během provádění příkazu mění. Proto můžete získat různé výsledky v různých částech příkazu, pokud funkci voláte vícekrát v rámci jednoho příkazu.
Syntaxe
Syntaxe je tak jednoduchá, jak jen může:
clock_timestamp()
Nepřijímá tedy žádné parametry.
Příklad
Zde je základní příklad k demonstraci.
SELECT clock_timestamp();
Výsledek:
2020-07-01 09:53:22.823731+10
Vícenásobné volání
Zde je základní příklad, který ukazuje, jak se mohou výsledky lišit, když funkci voláte vícekrát v rámci jednoho příkazu SQL.
\x
SELECT
clock_timestamp(),
pg_sleep(5),
clock_timestamp(),
pg_sleep(3),
clock_timestamp();
Výsledek (při použití vertikálního výstupu):
clock_timestamp | 2020-07-01 09:58:29.744838+10 pg_sleep | clock_timestamp | 2020-07-01 09:58:34.813448+10 pg_sleep | clock_timestamp | 2020-07-01 09:58:37.859197+10
Zde jsem použil pg_sleep()
funkce pro zpoždění spuštění o několik sekund. První volání zpozdí provedení o 5 sekund a druhé volání o 3 sekundy.
Můžeme to vidět pokaždé, když clock_timestamp()
byl skutečný čas mírně odlišný. To je způsobeno hlavně funkcí pg_sleep()
funkce, ale i bez ní by to mohlo být jiné, v závislosti na tom, jak rychle běží dotaz.
Zde je to opět bez pg_sleep()
hovory.
SELECT
clock_timestamp(),
clock_timestamp(),
clock_timestamp();
Výsledek (při použití vertikálního výstupu):
clock_timestamp | 2020-07-01 10:03:10.828557+10 clock_timestamp | 2020-07-01 10:03:10.828558+10 clock_timestamp | 2020-07-01 10:03:10.828558+10
Tyto příklady používají vertikální výstup (obvykle nazývaný rozšířené zobrazení v psql), aby bylo snazší číst výsledky.
Rozšířené zobrazení v psql můžete přepínat pomocí \x
.