2009-02-01 8 views
1

J'utilise un serveur sql 2005 hébergé dans les états. Bientôt, nous allons déplacer le db vers l'Europe. Je voudrais mettre à jour les dates dans la base de données pour prendre en compte la différence de fuseau horaire. Existe-t-il un bon moyen de le faire? Ou est-ce juste un cas de boucler les dates et d'ajouter le décalage horaire?Considérations de fuseau horaire dans le serveur sql

Répondre

3

Faut-il vraiment changer parce qu'il a été physiquement déplacé? Si vous prenez en charge des applications globales, je stockerais toutes mes informations de date/heure dans GMT et traduirais vers local du côté client.

+0

Intéressant. Merci. Le problème est que nous avons déjà des données dans la base de données. Et une fois que nous nous déplaçons, les données ne seront utilisées que dans ce fuseau horaire. – user17510

+0

Toutes les données de temps doivent être stockées en temps universel par principe. Ensuite, ces problèmes ne se présentent jamais. –

2

Je pense que vous devriez enregistrer la date/heure dans la base de données dans un fuseau horaire constant, soit GMT (car il est assez simple de le transformer en d'autres fuseaux horaires) ou le fuseau horaire actuel du serveur s'il n'est pas GMT .

La seule raison pour laquelle l'option ultérieure a du sens est que vous utilisez la fonction CURDATE pour insérer/filtrer des enregistrements de la base de données, sinon GMT est la meilleure option.

Vous pouvez essayer d'utiliser DATEDIFF avec DATEADD, mais en raison de l'heure d'été, cela ne vous donnera pas toujours l'heure précise (désactivée d'une heure dans certains cas).

Il y a une limitation connue dans SQL Server 2005 sur les conversions de fuseau horaire, s'il vous plaît refere le lien suivant pour plus d'informations: http://connect.microsoft.com/SQLServer/feedback/ViewFeedback.aspx?FeedbackID=308563

Questions connexes