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

Změní změna časového pásma MySQL hodnoty polí DateTime v databázi?

V zásadě by nemělo. Existují různé důvody, proč by se nemělo měnit, v závislosti na typu vašich hodnot:většinou DATETIME a TIMESTAMP.

Hodnoty DATETIME se nikdy nepřevádějí, takže jsou nezávislé na časovém pásmu.

Hodnoty TIMESTAMP jsou převedeny (přímá citace z manuálu zde --- Předpokládám, že máte poměrně nedávnou verzi MySQL) "z aktuálního časového pásma do UTC pro uložení a zpět z UTC do aktuálního časového pásma pro vyhledání. (Toto se nevyskytuje u jiných typů, jako je DATETIME.) Ve výchozím nastavení je aktuálním časovým pásmem pro každé připojení čas serveru. Časové pásmo lze nastavit pro jednotlivá připojení. Dokud nastavení časového pásma zůstane konstantní, získat zpět stejnou hodnotu, jakou jste uložili. Pokud uložíte hodnotu TIMESTAMP a poté změníte časové pásmo a načtete hodnotu, bude se načtená hodnota lišit od hodnoty, kterou jste uložili. K tomu dochází, protože stejné časové pásmo nebylo použito pro převod v oba směry." (z http://dev.mysql.com/doc/refman /5.5/en/datetime.html ).

Takže v obou případech se data skutečně uložená na serveru nemění (což by mělo být), ale hodnoty, které budou vaše dotazy zobrazovat, se mohou lišit předtím a potom.



  1. postgresql COUNT(DISTINCT ...) velmi pomalé

  2. Android:Odesílání dat k uložení do MySQL

  3. Jaký je rozdíl mezi použitím INDEX vs KEY v MySQL?

  4. získání Ztráta připojení k mysql při použití mysqldump i s parametrem max_allowed_packet