PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Funktionsweise von clock_timestamp() in PostgreSQL

In PostgreSQL clock_timestamp() ist eine Nicht-SQL-Standardzeitfunktion, die das aktuelle Datum und die aktuelle Uhrzeit zurückgibt.

Eine wichtige Überlegung dieser Funktion ist, dass sich ihr Ergebnis während der Ausführung einer Anweisung ändert. Daher könnten Sie in verschiedenen Teilen der Anweisung unterschiedliche Ergebnisse erhalten, wenn Sie die Funktion mehrmals innerhalb einer einzelnen Anweisung aufrufen.

Syntax

Die Syntax ist denkbar einfach:

clock_timestamp()

Es akzeptiert also keine Parameter.

Beispiel

Hier ist ein einfaches Beispiel zur Veranschaulichung.

SELECT clock_timestamp();

Ergebnis:

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

Mehrere Anrufe

Hier ist ein einfaches Beispiel, um zu demonstrieren, wie sich die Ergebnisse unterscheiden können, wenn Sie die Funktion mehrmals innerhalb einer einzigen SQL-Anweisung aufrufen.

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

Ergebnis (bei vertikaler Ausgabe):

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

Hier habe ich den pg_sleep() verwendet Funktion, um die Ausführung um einige Sekunden zu verzögern. Der erste Aufruf verzögert die Ausführung um 5 Sekunden und der zweite Aufruf verzögert die Ausführung um 3 Sekunden.

Wir können das jedes Mal sehen clock_timestamp() aufgerufen wurde, war die tatsächliche Zeit etwas anders. Das liegt hauptsächlich an pg_sleep() funktionieren, aber es könnte auch ohne sie anders sein, je nachdem, wie schnell die Abfrage läuft.

Hier nochmal ohne pg_sleep() Anrufe.

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

Ergebnis (bei vertikaler Ausgabe):

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

Diese Beispiele verwenden eine vertikale Ausgabe (normalerweise als erweiterte Anzeige in psql bezeichnet), um das Lesen der Ergebnisse zu erleichtern.

Sie können die erweiterte Anzeige in psql mit \x umschalten .