Problem:
Chcesz przekonwertować ciąg znaków zawierający informacje o dacie i godzinie na znacznik czasu w PostgreSQL.
Skonwertujmy ciąg znaków zawierający datę, godzinę i informacje o strefie czasowej na typ danych timestamptz.
Rozwiązanie:
Użyjemy TO_TIMESTAMP()
funkcjonować. Oto zapytanie, które możesz napisać:
SELECT TO_TIMESTAMP('2018/08/27/15:23:45', 'YYYY/MM/DD/HH24:MI:ss') AS new_timestamptz;
Oto wynik zapytania:
new_timestamptz |
---|
2018-08-27 15:23:45+02 |
Dyskusja:
Użyj funkcji PostgreSQL TO_TIMESTAMP()
gdy chcesz przekonwertować ciąg znaków zawierający datę i godzinę na sygnaturę czasową typ danych. Ta funkcja przyjmuje dwa argumenty:ciąg znaków zawierający datę i godzinę (w naszym przykładzie tekst „2018/08/27/15:23:45
') i format wejściowy (w naszym przykładzie „YYYY/MM/DD/HH24:MI:ss
’). Format wejściowy wskazuje, jak należy przekonwertować znaki w ciągu. Oto główne elementy powyższego wzorca:
- RRRR reprezentuje 4-cyfrowy rok.
- MM reprezentuje dwucyfrowy miesiąc.
- DD reprezentuje dwucyfrowy dzień miesiąca.
- HH24 reprezentuje 2-cyfrową godzinę (od 00 do 23).
- MI reprezentuje 2-cyfrową minutę (od 00 do 59).
- ss reprezentuje 2-cyfrową sekundę (od 00 do 59).
Zauważ, że używamy ukośników (/) jako ograniczników części daty i dwukropków (:) jako ograniczników części czasu. Pełną listę elementów wzorca daty i godziny można znaleźć w dokumentacji PostgreSQL.
Zauważ, że formatem wejściowym jest ciąg. Funkcja TO_TIMESTAMP() zwraca sygnaturę czasową wartość z informacją o strefie czasowej.
W naszym przykładzie data i godzina tekstu '2018/08/27/15:23:45
„został przekonwertowany na sygnaturę czasową wartość 2018-08-27 15:23:45+02
. sygnatura czasowa typ danych jest bardziej czytelny.