sql >> Databasteknik >  >> RDS >> Mysql

Kommer ändring av en MySQL-tidszon att ändra värdena på DateTime-fält i en databas?

Det borde det i princip inte. Det finns olika anledningar till att det inte bör ändras, beroende på typen av dina värden:mestadels DATETIME och TIMESTAMP.

DATETIME-värden konverteras aldrig, så de är oberoende av tidszonen.

TIMESTAMP-värden konverteras (direkt citat från manualen här --- jag antar att du har en ganska ny version av MySQL) "från den aktuella tidszonen till UTC för lagring och tillbaka från UTC till den aktuella tidszonen för hämtning. (Denna förekommer inte för andra typer såsom DATETIME.) Som standard är den aktuella tidszonen för varje anslutning serverns tid. Tidszonen kan ställas in per anslutning. Så länge tidszoninställningen förblir konstant, få tillbaka samma värde som du lagrar. Om du lagrar ett TIMESTAMP-värde och sedan ändrar tidszonen och hämtar värdet, skiljer sig det hämtade värdet från det värde du lagrade. Detta beror på att samma tidszon inte användes för konvertering i båda riktningarna." (från http://dev.mysql.com/doc/refman /5.5/sv/datetime.html ).

Så i båda fallen ändras inte data som faktiskt lagras på servern (vilket är som det borde vara), men värdena som dina frågor kommer att visa kan vara olika före och efter.



  1. Dynamiska databastabeller i django

  2. Hur får man åtkomst till mysqli-anslutning i en annan klass på en annan sida?

  3. Hur man lägger till autoinkrement-id enligt en grupp i mysql

  4. 5 Microsoft Access tips och tricks