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

Uložení časového pásma v datovém typu časové razítko s časovým pásmem

Jde pouze o nedorozumění pramenící z poněkud zavádějícího názvu typu. Samotné časové pásmo není vůbec uloženo . Funguje pouze jako offset pro výpočet časového razítka UTC (vstupu), který je skutečně uložen. Nebo jako dekorátor v zobrazení časového razítka podle aktuálního nebo daného časového pásma (výstupu). To je vše podle standardu SQL.

Ukládá se pouze bod v čase, žádné informace o zóně. Proto stačí 64bitová informace. Časové razítko se klientovi zobrazí podle aktuálního nastavení časového pásma relace.

Podrobnosti:

  • Úplné ignorování časových pásem v Rails a PostgreSQL

Také, když to Jon zmínil, time with time zone je definován ve standardu SQL a je tedy implementován v Postgresu, ale jeho použití se nedoporučuje:

time with time zone je definován standardem SQL, ale definice vykazuje vlastnosti, které vedou k pochybné užitečnosti.

Je to přirozeně nejednoznačný typ, který se nedokáže správně vypořádat s DST.



  1. Přetypování datového typu Postgres

  2. Pořadí provádění dotazu / klauzule MySQL

  3. Výukový program MySQL – Správa protokolů serveru MySQL:Otáčet, komprimovat, uchovávat a mazat

  4. BadImageFormatException. K tomu dojde při spuštění v 64bitovém režimu s nainstalovanými 32bitovými klientskými součástmi Oracle