sql >> Databáze >  >> RDS >> PostgreSQL

Jak timeofday() funguje v PostgreSQL

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 .


  1. MySQL vs MariaDB vs Percona Server:Porovnání bezpečnostních funkcí

  2. Chyba SQL Server 7222:„V této instanci je povolen pouze poskytovatel SQL Server“

  3. Jak získat další ID automatického zvýšení v mysql

  4. Jak vložit data z jedné databázové tabulky do jiné databázové tabulky v Mysql