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

Come ottenere l'ora corrente (senza fuso orario) in PostgreSQL

Problema:

Vorresti ottenere l'ora corrente in un database PostgreSQL. Non vuoi l'offset del fuso orario.

Soluzione:

Useremo la funzione LOCALTIME per ottenere l'ora corrente senza l'offset del fuso orario.

SELECT LOCALTIME;

Ecco il risultato della query:

	22:15:51.987914

Discussione:

La funzione PostgreSQL LOCALTIME restituisce l'ora corrente sulla macchina che esegue PostgreSQL. Lo restituisce come tipo di dati temporali in 'hh:mm:ss.nnnnnn ' formato. In questo formato:

  • hh è un'ora a 2 cifre.
  • mm è un minuto a 2 cifre.
  • ss è un secondo a 2 cifre.
  • nnnnnn sono secondi frazionari (da zero a 6 cifre di precisione).

Come puoi notare, questa funzione non ha parentesi. Tuttavia, se si desidera visualizzare l'ora con una precisione specifica, utilizzare come argomento le parentesi con un numero intero compreso tra 0 e 6. Questo restituirà l'ora con il numero di secondi frazionari desiderato. Ad esempio, LOCALTIME(1) denota solo un secondo frazionario (cioè una posizione dopo il decimale); 2 restituirà due posizioni, ecc. Il valore predefinito (senza parentesi o parentesi vuote) è sei, che è anche il numero massimo di secondi frazionari. Guarda il prossimo esempio:

SELECT LOCALTIME(0) ;

Ecco il risultato della query:

21:12:06

Questo risultato non contiene secondi frazionari perché mettiamo 0 come argomento.

LOCALTIME restituisce l'ora in cui inizia la transazione corrente. La differenza tra LOCALTIME e CURRENT_TIME è che LOCALTIME non include l'offset del fuso orario.