sql >> Databáze >  >> RDS >> PostgreSQL

Formát data Postgres UTC a obsazení epochy, inverze znaménka

Toto

1970-01-01 00:00:00+01

je časové razítko ISO 8601 s posunem +1 hodiny a +1 znamená východně od Greenwiche. Posuny v těchto

01-01-1970 00:00:00 UTC+01
1970-01-01 00:00:00 UTC+01
1970-01-01 00:00:00 XXX+01
1970-01-01 00:00:00 HAHA+01
1970-01-01 00:00:00 Pancakes+01

budou interpretovány jako časová pásma ve stylu POSIX, kde +1 znamená západ z Greenwiche:

PostgreSQL bude akceptovat specifikace časového pásma ve stylu POSIX ve formě STDoffset nebo STDoffsetDST, kde STD je zkratka zóny, offset je číselný posun v hodinách západně od UTC

a ty dokonce přicházejí s varováním:

Měli bychom se mít na pozoru, že funkce časové zóny ve stylu POSIX může vést k tichému přijetí falešného vstupu, protože neexistuje žádná kontrola přiměřenosti zkratek zón. Například SET TIMEZONE TO FOOBAR0 bude fungovat a opustí systém efektivně pomocí poněkud zvláštní zkratky pro UTC. Dalším problémem, který je třeba mít na paměti, je, že v názvech časových pásem POSIX se pro umístění západně od Greenwiche používají kladné posuny. Všude jinde se PostgreSQL řídí konvencí ISO-8601, že kladné posuny časových pásem jsou východně od Greenwiche.

Všimněte si rozdílu mezi západem a východem.




  1. MySql:MyISAM vs. Inno DB!

  2. SQLcl pro přenos dat z Oracle do PostgreSQL nebo YugabyteDB 🅾🐘🚀

  3. Když je to naléhavé

  4. Jak nasadit Percona Server pro MySQL pro vysokou dostupnost