Problém:
Chcete převést řetězec obsahující informace o datu a čase na časové razítko v PostgreSQL.
Převedeme řetězec obsahující informace o datu, čase a časovém pásmu na datový typ timestamptz.
Řešení:
Použijeme TO_TIMESTAMP()
funkce. Zde je dotaz, který byste napsali:
SELECT TO_TIMESTAMP('2018/08/27/15:23:45', 'YYYY/MM/DD/HH24:MI:ss') AS new_timestamptz;
Zde je výsledek dotazu:
new_timestamptz |
---|
2018-08-27 15:23:45+02 |
Diskuse:
Použijte funkci PostgreSQL TO_TIMESTAMP()
když chcete převést řetězec obsahující data a čas na časové razítko datový typ. Tato funkce přebírá dva argumenty:řetězec obsahující datum a čas (v našem příkladu text '2018/08/27/15:23:45
') a vstupní formát (v našem příkladu „YYYY/MM/DD/HH24:MI:ss
'). Vstupní formát udává, jak mají být znaky v řetězci převedeny. Zde jsou hlavní prvky z výše uvedeného vzoru:
- RRRR představuje 4místný rok.
- MM představuje 2místný měsíc.
- DD představuje 2místný den v měsíci.
- HH24 představuje 2místnou hodinu (od 00 do 23).
- MI představuje 2místnou minutu (od 00 do 59).
- ss představuje 2místnou sekundu (od 00 do 59).
Všimněte si, že používáme lomítka (/) jako oddělovače částí data a dvojtečky (:) jako oddělovače částí času. Kompletní seznam prvků datetime pattern najdete v dokumentaci PostgreSQL.
Všimněte si, že vstupní formát je řetězec. Funkce TO_TIMESTAMP() vrací timestamptz hodnotu s informacemi o časovém pásmu.
V našem příkladu text datum a čas '2018/08/27/15:23:45
'byl převeden na časové razítko hodnota 2018-08-27 15:23:45+02
. časové razítko datový typ je čitelnější.