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.