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

Come funziona clock_timestamp() in PostgreSQL

In PostgreSQL, clock_timestamp() è una funzione dell'ora non standard SQL che restituisce la data e l'ora correnti.

Una considerazione importante di questa funzione è che il suo risultato cambia durante l'esecuzione di un'istruzione. Pertanto, potresti ottenere un risultato diverso in diverse parti dell'istruzione se chiami la funzione più volte all'interno di una singola istruzione.

Sintassi

La sintassi è semplicissima:

clock_timestamp()

Quindi non accetta alcun parametro.

Esempio

Ecco un esempio di base da dimostrare.

SELECT clock_timestamp();

Risultato:

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

Più chiamate

Ecco un esempio di base per dimostrare come i risultati possono differire quando chiami la funzione più volte all'interno di una singola istruzione SQL.

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

Risultato (usando l'output verticale):

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

Qui ho usato pg_sleep() funzione per ritardare l'esecuzione di alcuni secondi. La prima chiamata ritarda l'esecuzione di 5 secondi e la seconda chiamata ritarda l'esecuzione di 3 secondi.

Possiamo vederlo ogni volta clock_timestamp() è stato chiamato, l'ora effettiva era leggermente diversa. Ciò è dovuto principalmente a pg_sleep() funzione, ma potrebbe comunque essere diverso senza di essa, a seconda della velocità di esecuzione della query.

Eccolo di nuovo senza pg_sleep() chiamate.

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

Risultato (usando l'output verticale):

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

Questi esempi utilizzano l'output verticale (di solito chiamato display espanso in psql) per semplificare la lettura dei risultati.

Puoi attivare la visualizzazione espansa in psql con \x .