Problema:
Vorresti convertire una stringa contenente informazioni datetime in un timestamp in PostgreSQL.
Convertiamo una stringa contenente informazioni su data, ora e fuso orario nel tipo di dati timestamptz.
Soluzione:
Useremo il TO_TIMESTAMP()
funzione. Ecco la domanda che scriveresti:
SELECT TO_TIMESTAMP('2018/08/27/15:23:45', 'YYYY/MM/DD/HH24:MI:ss') AS new_timestamptz;
Ecco il risultato della query:
new_timestamptz |
---|
27-08-2018 15:23:45+02 |
Discussione:
Usa la funzione PostgreSQL TO_TIMESTAMP()
quando vuoi convertire una stringa contenente dati di data e ora nel timestamp tipo di dati. Questa funzione accetta due argomenti:una stringa contenente una data e un'ora (nel nostro esempio, il testo '2018/08/27/15:23:45
') e il formato di input (nel nostro esempio, 'YYYY/MM/DD/HH24:MI:ss
'). Il formato di input indica come devono essere convertiti i caratteri nella stringa. Ecco gli elementi principali del modello sopra:
- AAAA rappresenta un anno a 4 cifre.
- MM rappresenta un mese a 2 cifre.
- DD rappresenta un giorno del mese a 2 cifre.
- HH24 rappresenta un'ora a 2 cifre (da 00 a 23).
- MI rappresenta un minuto a 2 cifre (da 00 a 59).
- ss rappresenta un secondo a 2 cifre (da 00 a 59).
Si noti che usiamo le barre (/) come delimitatori di parte di data e due punti (:) come delimitatori di parte di tempo. Puoi trovare un elenco completo degli elementi del modello datetime nella documentazione di PostgreSQL.
Si noti che il formato di input è una stringa. La funzione TO_TIMESTAMP() restituisce un timestamptz valore con le informazioni sul fuso orario.
Nel nostro esempio, il testo data e ora "2018/08/27/15:23:45
'è stato convertito nel timestamp valore 2018-08-27 15:23:45+02
. Il indicatore orario il tipo di dati è più leggibile.