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.