Problem:
Du vill konvertera en sträng som innehåller information om datum och tid till en tidsstämpel i PostgreSQL.
Låt oss konvertera en sträng som innehåller information om datum, tid och tidszon till datatypen timestamptz.
Lösning:
Vi använder TO_TIMESTAMP()
fungera. Här är frågan du skulle skriva:
SELECT TO_TIMESTAMP('2018/08/27/15:23:45', 'YYYY/MM/DD/HH24:MI:ss') AS new_timestamptz;
Här är resultatet av frågan:
new_timestamptz |
---|
2018-08-27 15:23:45+02 |
Diskussion:
Använd PostgreSQL-funktionen TO_TIMESTAMP()
när du vill konvertera en sträng som innehåller datum- och tidsdata till tidsstämpeln data typ. Den här funktionen tar två argument:en sträng som innehåller ett datum och en tid (i vårt exempel, texten '2018/08/27/15:23:45
') och inmatningsformatet (i vårt exempel, 'YYYY/MM/DD/HH24:MI:ss
’). Inmatningsformatet anger hur tecknen i strängen ska konverteras. Här är huvudelementen från mönstret ovan:
- ÅÅÅÅ representerar ett 4-siffrigt år.
- MM representerar en tvåsiffrig månad.
- DD representerar en tvåsiffrig dag i månaden.
- HH24 representerar en tvåsiffrig timme (från 00 till 23).
- MI representerar en tvåsiffrig minut (från 00 till 59).
- ss representerar en tvåsiffrig sekund (från 00 till 59).
Observera att vi använder snedstreck (/) som datumdelavgränsare och kolon (:) som tidsdelavgränsare. Du kan hitta en komplett lista över datetime-mönsterelement i PostgreSQL-dokumentationen.
Observera att inmatningsformatet är en sträng. Funktionen TO_TIMESTAMP() returnerar en timestamptz värde med tidszonsinformation.
I vårt exempel, texten datum och tid '2018/08/27/15:23:45
' konverterades till tidsstämpel värde 2018-08-27 15:23:45+02
. tidsstämpeln datatypen är mer läsbar.