V PostgreSQL timeofday() je nestandardní časová funkce SQL, která vrací aktuální datum a čas se zkratkou časového pásma.
Je to podobné jako clock_timestamp() funkce, kromě toho, že vrací svůj výsledek jako formátovaný text řetězec namísto timestamp with time zone hodnota.
Výsledek obou funkcí 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 funkce voláte vícekrát v rámci jednoho příkazu.
Syntaxe
Syntaxe vypadá takto:
timeofday() Nepřijímá tedy žádné parametry.
Příklad
Zde je základní příklad k demonstraci.
SELECT timeofday(); Výsledek:
Thu Jul 02 10:00:27.068776 2020 AEST
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
timeofday(),
pg_sleep(5),
timeofday(),
pg_sleep(3),
timeofday(); Výsledek (při použití vertikálního výstupu):
timeofday | Thu Jul 02 10:02:23.060770 2020 AEST pg_sleep | timeofday | Thu Jul 02 10:02:28.131195 2020 AEST pg_sleep | timeofday | Thu Jul 02 10:02:31.192749 2020 AEST
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ž timeofday() byl skutečný čas mírně odlišný. To je většinou způsobeno pg_sleep() funkce, ale i bez ní se může mírně lišit v závislosti na rychlosti běhu dotazu.
Zde je to opět bez pg_sleep() hovory.
SELECT
timeofday(),
timeofday(),
timeofday(); Výsledek (při použití vertikálního výstupu):
timeofday | Thu Jul 02 10:03:26.044065 2020 AEST timeofday | Thu Jul 02 10:03:26.044076 2020 AEST timeofday | Thu Jul 02 10:03:26.044080 2020 AEST
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 .