Je dois convertir une base de données existante (datetime fields) à partir de l'heure locale ut UTC.Mysql: Convertir la base de données de l'heure locale en UTC
Les valeurs sont stockées à l'instant sur un serveur avec fuseau horaire CET (+1) (avec heure d'été +2). Lorsque je sélectionne des données, j'utilise UNIX_TIMESTAMP()
, ce qui compense magiquement tout, c'est-à-dire le décalage de fuseau horaire et dst (si j'ai lu les docs à droite). Je déplace la base de données vers un nouveau serveur avec UTC comme heure système. Il suffit de soustraire -1 H ne fonctionne pas, car l'heure d'été est +2.
Des idées pour une façon intelligente de faire cela? (en utilisant sql ou un script lang)
Salut, je sais que ça fait longtemps que tu n'as pas répondu, mais pour une raison ou une autre, cette déclaration ne fonctionne pas pour moi ... J'ai vérifié le document et je suis capable d'obtenir SELECT CONVERT_TZ ('2004-01-01 12 : 00: 00 ',' + 00:00 ',' + 10:00 ');', mais pas ce que vous avez décrit plus haut ... y at-il quelque chose qui me manque? Je continue d'obtenir null pour cela. – KVISH
@kalvish, vous avez probablement juste besoin de remplir la table mysql.time_zone_name. Essayez d'exécuter cette commande dans le shell pour remplir cette table: 'mysql_tzinfo_to_sql/usr/share/zoneinfo | mysql -u root mysql' –
SELECT CONVERT_TZ ('2017-02-15 08:00:00', "UTC", "CST"); return null – wyx