Problem:
Du vil gerne konvertere en streng, der indeholder oplysninger om dato og klokkeslæt, til et tidsstempel i PostgreSQL.
Lad os konvertere en streng, der indeholder oplysninger om dato, klokkeslæt og tidszone, til datatypen timestamptz.
Løsning:
Vi bruger TO_TIMESTAMP() fungere. Her er den forespørgsel, du ville skrive:
SELECT TO_TIMESTAMP('2018/08/27/15:23:45', 'YYYY/MM/DD/HH24:MI:ss')
AS new_timestamptz;
Her er resultatet af forespørgslen:
| new_timestamptz |
|---|
| 2018-08-27 15:23:45+02 |
Diskussion:
Brug PostgreSQL-funktionen TO_TIMESTAMP() når du vil konvertere en streng indeholdende dato- og tidsdata til tidsstemplet datatype. Denne funktion tager to argumenter:en streng, der indeholder en dato og et klokkeslæt (i vores eksempel er teksten '2018/08/27/15:23:45 ') og inputformatet (i vores eksempel, 'YYYY/MM/DD/HH24:MI:ss ’). Indtastningsformatet angiver, hvordan tegnene i strengen skal konverteres. Her er hovedelementerne fra ovenstående mønster:
- ÅÅÅÅ repræsenterer et 4-cifret årstal.
- MM repræsenterer en 2-cifret måned.
- DD repræsenterer en 2-cifret dag i måneden.
- HH24 repræsenterer en 2-cifret time (fra 00 til 23).
- MI repræsenterer et 2-cifret minut (fra 00 til 59).
- ss repræsenterer et 2-cifret sekund (fra 00 til 59).
Bemærk, at vi bruger skråstreger (/) som datodel-afgrænsninger og koloner (:) som tidsdel-afgrænsninger. Du kan finde en komplet liste over datetime-mønsterelementer i PostgreSQL-dokumentationen.
Bemærk, at inputformatet er en streng. Funktionen TO_TIMESTAMP() returnerer en tidsstempel værdi med tidszoneoplysninger.
I vores eksempel er teksten dato og klokkeslæt '2018/08/27/15:23:45 'blev konverteret til tidsstemplet værdi 2018-08-27 15:23:45+02 . tidsstemplet datatypen er mere læsbar.