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

Come ottenere la data e l'ora correnti (senza fuso orario) in PostgreSQL

Problema:

Vorresti ottenere la data e l'ora correnti in un database PostgreSQL. Non è necessario l'offset del fuso orario.

Soluzione:

Utilizzeremo la funzione LOCALTIMESTAMP per ottenere la data e l'ora correnti senza alcuna informazione sul fuso orario:

SELECT LOCALTIMESTAMP ;

Ecco il risultato della query:

2019-09-24 20:10:58.977914

Discussione:

La funzione PostgreSQL LOCALTIMESTAMP restituisce la data e l'ora correnti (della macchina che esegue quell'istanza di PostgreSQL) come timestamp valore. Utilizza 'AAAA-MM-GG hh:mm:ss.nnnnnnn ' formato, dove:

  • AAAA è un anno a 4 cifre.
  • MM è un mese a 2 cifre.
  • DD è un giorno a 2 cifre.
  • 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 la data e l'ora con una precisione specifica, inserire un numero intero compreso tra 0 e 6 come argomento tra parentesi. Questo restituirà la data e l'ora con il numero di secondi frazionari desiderato. Ad esempio, LOCALTIMESTAMP(1) denota solo un secondo frazionario (cioè una posizione dopo il decimale); 2 restituirà due posizioni, ecc. La precisione predefinita è 6, che è anche il numero massimo di secondi frazionari; questo è ciò che ottieni se non usi affatto le parentesi. Guarda il prossimo esempio:

SELECT LOCALTIMESTAMP(0) ;

Ecco il risultato della query:

2019-09-24 20:10:58

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

Questa funzione restituisce l'ora in cui è iniziata la transazione corrente. La differenza tra LOCALTIMESTAMP e CURRENT_TIMESTAMP è che il LOCALTIMESTAMP non include la differenza di fuso orario.