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

Come convertire una stringa in un timestamp in PostgreSQL

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.