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

Hvordan clock_timestamp() virker i PostgreSQL

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

En vigtig overvejelse af denne funktion er, at dens resultat ændres under udførelsen af ​​en erklæring. Derfor kan du få et andet resultat i forskellige dele af sætningen, hvis du kalder funktionen flere gange inden for en enkelt sætning.

Syntaks

Syntaksen er så enkel som den bliver:

clock_timestamp()

Så den accepterer ingen parametre.

Eksempel

Her er et grundlæggende eksempel at demonstrere.

SELECT clock_timestamp();

Resultat:

2020-07-01 09:53:22.823731+10

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 
  clock_timestamp(),
  pg_sleep(5),
  clock_timestamp(),
  pg_sleep(3),
  clock_timestamp();

Resultat (ved hjælp af lodret output):

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

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 clock_timestamp() blev kaldt, var den faktiske tid lidt anderledes. Dette skyldes hovedsageligt pg_sleep() funktion, men den kan stadig være anderledes uden den, afhængigt af hvor hurtigt forespørgslen kører.

Her er den igen uden pg_sleep() opkald.

SELECT 
  clock_timestamp(),
  clock_timestamp(),
  clock_timestamp();

Resultat (ved hjælp af lodret output):

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

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. 4 måder at finde rækker, der indeholder små bogstaver i MariaDB

  2. Tilladelse nægtet til forholdet

  3. Hvorfor intet output, når PLSQL Anonymous-blok er fuldført?

  4. Introduktion til låse