sql >> Databáze >  >> RDS >> Mysql

Ukládání časových informací:Vyžaduje se časové pásmo?

Ať už to uděláte jakýmkoli způsobem, selže to různými způsoby v závislosti na tom, co se mění.

  1. Pokud ukládáte časová razítka v odpovídajícím časovém pásmu jako 2013-12-29 12:34:56 America/New_York , to selže, pokud, řekněme, Bronx náhle spustí své vlastní časové pásmo America/New_York_Bronx s jiným posunem a vaše událost se stala v Bronxu.

    Rozhodněte, jak je to pravděpodobné a jak špatné by bylo selhání.

  2. Pokud ukládáte časová razítka v UTC a časové pásmo, ve kterém se událost odehrává, předefinuje jejich posun (např. posunutí letního času nebo úplné posunutí na jiný posun), čas události se může lišit od skutečného času nástěnných hodin v daném místě. Pokud uložíte 2013-12-29 12:34:56 UTC pro událost ve 13:34:56 v Berlíně, Německo a Berlín přesune svůj DST o, 2013-12-29 12:34:56 UTC může nyní odpovídat 14:34:56 berlínského místního času, zatímco událost ve skutečnosti stále probíhá ve 13:34 místního času.

    Rozhodněte, jak je to pravděpodobné a jak špatné by bylo selhání.

  3. Pokud uložíte časové razítko UTC a propojíte jej s fyzickým umístěním, které pak propojíte s časovým pásmem, můžete oba problémy vyřešit. Ale k tomu budete muset uložit přesnou fyzickou polohu, nejen „New York“, jinak máte jen případ 1. s dalším mezikrokem. Pokud uložíte přesné fyzické umístění a máte přesný způsob, jak toto umístění převést na časové pásmo a budete udržovat databázi časového pásma aktuální, zvládnete v podstatě všechny scénáře změn.

    Rozhodněte, jak je to praktické a jakou cenu pro vás tato extra přesnost má.



  1. Vícenásobné přiřazení stejné hodnoty parametru v příkazu pdo

  2. Identifikace sporu sekvencí ASH v RAC

  3. Řešení DevOps pro automatizaci vývoje databází

  4. Jak optimalizovat ORDER BY pro vypočítaný sloupec v MASSIVE MySQL tabulce