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
.