2010-12-06 29 views
0

Mon SQL Server semble être sur AU ESDT au lieu de l'heure AU ACSDT, cependant le serveur (Server 2008) a le fuseau horaire correct sur AU ACSDT, est-il possible de trouver et de résoudre le problème?Fuseau horaire incorrect de 30 minutes

Quand je lance:

SELECT GETUTCDATE(), GETDATE(), DATEDIFF(HOUR, GETDATE(), GETUTCDATE()) ; 

Les résultats que je reçois sont:

2010-12-06 01:47:57.207 2010-12-06 12:17:57.207 -11 

Un DB J'ai stocke ses dates au format UTC et quand je calcule l'est compensé TZ correcte toujours par 30 minutes.

Toute aide est grandement appréciée.

Environnement: SQL Server 2005 x64 SP3 (9.0.4035) MS Server 2008 x64 SP1

+2

Quel est le décalage correct? Le serveur semble penser qu'il est 10h30. – Gabe

+0

Donc c'est, putain, je faisais seulement le diff en heures, donc c'était arrondi. Convertir ma requête ci-dessus pour trouver le diff en mins renvoie 630. Donc, à la fin il n'y avait pas de problème ce qui est une excellente nouvelle, juste besoin de travailler sur le décalage TZ pour ma requête SQL maintenant. Merci pour votre aide. – Lima

+1

un peu hors sujet, mais j'ai personnellement décidé de stocker toutes les données comme UTC, puis la mondialisation devient beaucoup plus facile. –

Répondre

0

Oui, c'était mon erreur, le fuseau horaire et l'heure de sortie étaient corrects, juste les minutes ne revenaient pas dans ma requête, donc l'heure était arrondie.

1

ACDT est UTC + 10.5, AEDT est UTC + 11

Lorsque vous dites que vous « calculer le bon décalage TZ ", êtes-vous sûr que c'est correct? De votre requête, il semble que SQL utilise ACDT, puisque le GETUTCDATE + 10.5 s'avère être le même résultat que GETDATE (01:47 + 10.5 = 12:17).

+0

Toutes mes excuses pour la réponse tardive; J'ai eu cette fenêtre ouverte pendant un moment et j'ai oublié de soumettre mon post! – Eaglebird

1

même si vous avez mentionné que l'heure de votre serveur est correcte, mais avez-vous vérifié l'heure système du serveur? Il est sous l'onglet "Administratif" sur le serveur Panneau de configuration

La raison pour laquelle je dis cela est simplement parce que même vous pouvez ajuster le temps du serveur grâce à la petite "horloge" apparaît dans le coin inférieur droit de votre serveur, mais ce n'est pas la bonne façon de changer