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

Come funziona timeofday() in PostgreSQL

In PostgreSQL, timeofday() è una funzione dell'ora non standard SQL che restituisce la data e l'ora correnti, con l'abbreviazione del fuso orario.

È simile a clock_timestamp() funzione, tranne per il fatto che restituisce il suo risultato come un text formattato string anziché un timestamp with time zone valore.

Il risultato di entrambe le funzioni cambia durante l'esecuzione di un'istruzione. Pertanto, potresti ottenere un risultato diverso in diverse parti dell'istruzione se chiami le funzioni più volte all'interno di una singola istruzione.

Sintassi

La sintassi è questa:

timeofday()

Quindi non accetta alcun parametro.

Esempio

Ecco un esempio di base da dimostrare.

SELECT timeofday();

Risultato:

Thu Jul 02 10:00:27.068776 2020 AEST

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

Risultato (usando l'output verticale):

timeofday | Thu Jul 02 10:02:23.060770 2020 AEST
pg_sleep  | 
timeofday | Thu Jul 02 10:02:28.131195 2020 AEST
pg_sleep  | 
timeofday | Thu Jul 02 10:02:31.192749 2020 AEST

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 timeofday() è stato chiamato, l'ora effettiva era leggermente diversa. Ciò è dovuto principalmente a pg_sleep() funzione, tuttavia potrebbe anche essere leggermente diversa senza di essa, a seconda della velocità di esecuzione della query.

Eccolo di nuovo senza pg_sleep() chiamate.

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

Risultato (usando l'output verticale):

timeofday | Thu Jul 02 10:03:26.044065 2020 AEST
timeofday | Thu Jul 02 10:03:26.044076 2020 AEST
timeofday | Thu Jul 02 10:03:26.044080 2020 AEST

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 .