“PostgreSQL strefa czasowa zmiany czasu na strefie czasu bez strefy czasowej” Kod odpowiedzi

Postgres ustawia stref czasu

SET TIME ZONE 'Europe/Moscow';
Evolcon

Timestamp z strefą czasową Postgres

foo=> SET TIMEZONE TO 'Japan';
SET
foo=> SELECT '2011-01-01 00:00:00'::TIMESTAMP;
      timestamp      
---------------------
 2011-01-01 00:00:00
(1 row)

foo=> SELECT '2011-01-01 00:00:00'::TIMESTAMP WITH TIME ZONE;
      timestamptz       
------------------------
 2011-01-01 00:00:00+09
(1 row)

foo=> SELECT '2011-01-01 00:00:00+03'::TIMESTAMP;
      timestamp      
---------------------
 2011-01-01 00:00:00
(1 row)

foo=> SELECT '2011-01-01 00:00:00+03'::TIMESTAMP WITH TIME ZONE;
      timestamptz       
------------------------
 2011-01-01 06:00:00+09
(1 row)

foo=> SET TIMEZONE TO 'Australia/Melbourne';
SET
foo=> SELECT '2011-01-01 00:00:00'::TIMESTAMP;
      timestamp      
---------------------
 2011-01-01 00:00:00
(1 row)

foo=> SELECT '2011-01-01 00:00:00'::TIMESTAMP WITH TIME ZONE;
      timestamptz       
------------------------
 2011-01-01 00:00:00+11
(1 row)

foo=> SELECT '2011-01-01 00:00:00+03'::TIMESTAMP;
      timestamp      
---------------------
 2011-01-01 00:00:00
(1 row)

foo=> SELECT '2011-01-01 00:00:00+03'::TIMESTAMP WITH TIME ZONE;
      timestamptz       
------------------------
 2011-01-01 08:00:00+11
(1 row)
Nutty Nightingale

Postgres Wstaw znacznik czasu bez strefy czasowej


            
                
            
         INSERT INTO timestamp_demo (ts, tstz)
VALUES('2016-06-22 19:10:25-07','2016-06-22 19:10:25-07');Code language: SQL (Structured Query Language) (sql)
Determined Donkey

PostgreSQL strefa czasowa zmiany czasu na strefie czasu bez strefy czasowej

-- You have an issue where entries in the database are recorded in local time without the timezone
-- Postgresql assumes that these entries are in fact UTC
-- This corrects these entries by converting them to actual UTC
-- You might want to update the column (from timestamp) to a timestamptz, then perform the command below
UPDATE <table>
SET <timestamptz_field> = 
  (<timestamptz_field> AT TIME ZONE 'UTC') AT TIME ZONE '<correct_time_zone>';
  
-- e.g start_date_time before = '2021-07-29 18:15:16+00' (This is from a location at GMT+2)
-- start_date_time after = '2021-07-29 16:15:16+00' (This is the actual UTC timestamp)
UPDATE public.uut_result
	SET start_date_time= (start_date_time at time zone 'utc') at time zone 'Africa/Harare'
Muddy Moose

Odpowiedzi podobne do “PostgreSQL strefa czasowa zmiany czasu na strefie czasu bez strefy czasowej”

Pytania podobne do “PostgreSQL strefa czasowa zmiany czasu na strefie czasu bez strefy czasowej”

Więcej pokrewnych odpowiedzi na “PostgreSQL strefa czasowa zmiany czasu na strefie czasu bez strefy czasowej” w Sql

Przeglądaj popularne odpowiedzi na kod według języka

Przeglądaj inne języki kodu