Mysql
 sql >> Database >  >> RDS >> Mysql

La modifica di un fuso orario MySQL cambierà i valori dei campi DateTime in un database?

In linea di principio non dovrebbe. Ci sono vari motivi per cui non dovrebbe cambiare, a seconda del tipo di valori:principalmente DATETIME e TIMESTAMP.

I valori DATETIME non vengono mai convertiti, quindi sono indipendenti dal fuso orario.

I valori TIMESTAMP vengono convertiti (citazione diretta dal manuale qui --- suppongo che tu abbia una versione abbastanza recente di MySQL) "dal fuso orario corrente all'UTC per l'archiviazione e viceversa dall'UTC al fuso orario corrente per il recupero. (Questo non si verifica per altri tipi come DATETIME.) Per impostazione predefinita, il fuso orario corrente per ciascuna connessione è l'ora del server. Il fuso orario può essere impostato in base alla connessione. Finché l'impostazione del fuso orario rimane costante, recuperare lo stesso valore memorizzato. Se si memorizza un valore TIMESTAMP, quindi si modifica il fuso orario e si recupera il valore, il valore recuperato è diverso dal valore memorizzato. Ciò si verifica perché lo stesso fuso orario non è stato utilizzato per la conversione in entrambe le direzioni". (da http://dev.mysql.com/doc/refman /5.5/en/datetime.html ).

Quindi in entrambi i casi i dati effettivamente memorizzati sul server non cambiano (come dovrebbe essere), ma i valori che le tue query mostreranno potrebbero essere diversi prima e dopo.