sql >> Database teknologi >  >> RDS >> PostgreSQL

Hvordan timeofday() virker i PostgreSQL

I PostgreSQL, timeofday() er en ikke-SQL-standard tidsfunktion, der returnerer den aktuelle dato og klokkeslæt med tidszoneforkortelsen.

Det ligner clock_timestamp() funktion, bortset fra at den returnerer sit resultat som en formateret text streng i stedet for et timestamp with time zone værdi.

Resultatet af begge funktioner ændres under udførelsen af ​​en sætning. Derfor kan du få et andet resultat i forskellige dele af sætningen, hvis du kalder funktionerne flere gange i en enkelt sætning.

Syntaks

Syntaksen ser sådan ud:

timeofday() 

Så den accepterer ingen parametre.

Eksempel

Her er et grundlæggende eksempel at demonstrere.

SELECT timeofday(); 

Resultat:

Tor Jul 02 10:00:27.068776 2020 AEST

Flere opkald

Her er et grundlæggende eksempel for at demonstrere, hvordan resultaterne kan variere, når du kalder funktionen flere gange i en enkelt SQL-sætning.

\x
SELECT 
  timeofday(),
  pg_sleep(5),
  timeofday(),
  pg_sleep(3),
  timeofday(); 

Resultat (ved hjælp af lodret output):

tid på dagen | Thu Jul 02 10:02:23.060770 2020 AESTpg_sleep | tid på dagen | Thu Jul 02 10:02:28.131195 2020 AESTpg_sleep | tid på dagen | Tor 2. jul 10:02:31.192749 2020 AEST

Her brugte jeg pg_sleep() funktion til at forsinke udførelsen i flere sekunder. Det første opkald forsinker udførelsen i 5 sekunder, og det andet opkald forsinker udførelsen i 3 sekunder.

Vi kan se det hver gang timeofday() blev kaldt, var den faktiske tid lidt anderledes. Dette skyldes for det meste pg_sleep() funktion, men den kan også være lidt anderledes uden den, afhængigt af hvor hurtigt forespørgslen kører.

Her er den igen uden pg_sleep() opkald.

SELECT 
  timeofday(),
  timeofday(),
  timeofday(); 

Resultat (ved hjælp af lodret output):

tid på dagen | Thu Jul 02 10:03:26.044065 2020 AESTtimeofday | Tor 2. jul 10:03:26.044076 2020 AESTtid på dagen | Tor 2. jul 10:03:26.044080 2020 AEST

Disse eksempler bruger lodret output (normalt kaldet udvidet visning i psql) for at gøre det nemmere at læse resultaterne.

Du kan skifte udvidet visning i psql med \x .


  1. Adaptiv dynamisk statistik dræber ydeevne i 12.1.0.2 RAC

  2. NLS_CHARSET_NAME() Funktion i Oracle

  3. Returner resultater af en sql-forespørgsel som JSON i oracle 12c

  4. Hvornår og hvordan bruges SQL PARTITION BY-sætningen