sql >> Database >  >> RDS >> Mysql

Verandert het wijzigen van een MySQL-tijdzone de waarden van DateTime-velden in een database?

Zou in principe niet mogen. Er zijn verschillende redenen waarom het niet zou moeten veranderen, afhankelijk van het type van uw waarden:meestal DATETIME en TIMESTAMP.

DATETIME-waarden worden nooit geconverteerd, dus ze zijn onafhankelijk van de tijdzone.

TIMESTAMP-waarden worden geconverteerd (direct citaat uit de handleiding hier --- ik neem aan dat u een vrij recente versie van MySQL hebt) "van de huidige tijdzone naar UTC voor opslag en terug van UTC naar de huidige tijdzone om op te halen. (Dit is komt niet voor bij andere typen, zoals DATETIME.) Standaard is de huidige tijdzone voor elke verbinding de tijd van de server. De tijdzone kan per verbinding worden ingesteld. Zolang de instelling van de tijdzone constant blijft, kunt u krijg dezelfde waarde terug die u hebt opgeslagen. Als u een TIMESTAMP-waarde opslaat en vervolgens de tijdzone wijzigt en de waarde ophaalt, verschilt de opgehaalde waarde van de waarde die u hebt opgeslagen. Dit komt omdat dezelfde tijdzone niet is gebruikt voor conversie in beide richtingen." (van http://dev.mysql.com/doc/refman /5.5/nl/datetime.html ).

Dus in beide gevallen veranderen de gegevens die daadwerkelijk op de server zijn opgeslagen niet (wat is zoals het zou moeten zijn), maar de waarden die uw zoekopdrachten laten zien, kunnen ervoor en erna verschillen.



  1. Prestatietests met MySQLdump en het MySQL Shell-hulpprogramma

  2. Concat-functie werkt niet - ongeldig aantal argumenten

  3. 1GO SQL-bestand importeren => ERROR 2013 (HY000) op regel 23:Verbinding met MySQL-server verbroken tijdens query

  4. Voer productanalyses uit met behulp van SQL Server Full-Text Search. Deel 1