PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Zapytanie o strefę czasową - serwer db i komputer kliencki mają różne strefy czasowe

Ty zawsze pobierz same data in browser client as the db original value . Istnieje tylko wiele różnych sposobów wyświetlania tego samego punktu w czasie (w różnych strefach czasowych). Dwa przykłady (reprezentacje tekstowe timestamptz wartość):

'2012-03-05 20:00:00+03'
'2012-03-05 18:00:00+01'

Ta sama wartość .

W przypadku Postgresa ustawienie strefy czasowej serwera nie ma tutaj żadnego znaczenia. Jedyną istotną rzeczą jest oprawa sesji. Zmienia się tylko wyświetlacz wartości. To zawsze ten sam punkt w czasie.

Po prostu ustaw strefę czasową w sesji, aby uzyskać odpowiednią reprezentację tekstową:

Inną opcją byłoby AT TIME ZONE zbudować. Aby uzyskać timestamp jako lokalny timestamp without time zone :

SELECT my_timestamptz_column AT TIME ZONE '-8';

Kiedy mamy do czynienia z table that contains a column of timezone type , może to być lepsze podejście, ponieważ strefa czasowa może się zmieniać dla każdego wiersza.

Ponownie, wszystko to znajduje się w odpowiedzi referencyjnej:




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak napisać sprzężenie z tymi nietypowymi kryteriami dopasowania?

  2. Jak zmapować nazwy stref czasowych Railsów na PostgreSQL?

  3. Optymalizacja zapytań w PostgreSQL. WYJAŚNIJ podstawy – część 1

  4. PostgreSQL - Dodaj klucz do każdego obiektu tablicy JSONB

  5. Generowanie zliczeń otwartych biletów w czasie, z uwzględnieniem otwartych i zamkniętych dat