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.