Se connecter avec Microsoft
S'identifier ou créer un compte.
Bonjour,
Sélectionnez un autre compte.
Vous avez plusieurs comptes
Choisissez le compte avec lequel vous voulez vous connecter.

Microsoft distribue les correctifs Microsoft SQL Server 2008 R2 Service Pack 1 (SP1) comme un fichier téléchargeable. Dans la mesure où les correctifs s’exécutent de façon cumulative, chaque nouvelle version contient tous les correctifs et les correctifs de sécurité inclus dans la version de correctif du Service Pack 1 (SP1) SQL Server 2008 R2.

Symptômes

Prenons l’exemple du scénario suivant :

  • Vous avez une colonne type de données DateTimeOffset dans une table dans Microsoft sql Server 2008 R2 ou Microsoft sql Server 2012.

  • Vous pouvez créer un index sur la colonne DateTimeOffset .

  • Vous convertissez le type de données DateTimeOffset en type de données smalldatetime en utilisant la fonction Cast ou Convert sans l’argument style , ou lorsque la valeur de l’argument style est 0.

  • Le résultat de la fonction Cast ou Convert est utilisé dans un filtre dans une requête Transact-SQL.

  • Vous exécutez la requête Transact-SQL.

Dans ce scénario, le résultat retourné par la requête est incorrect, car le filtre ne fonctionne pas correctement. Par exemple, supposons que la colonne DateTimeOffset nommée « Date » contienne les valeurs suivantes :

  • 2011-05-21 23:00:00 -01:00

  • 2011-05-21 23:00:00 +00:00

  • 2011-05-21 23:00:00 +01:00

Vous exécutez la requête suivante :

SELECT Date FROM TestTable WHERE CAST(Date AS smalldatetime)= '2011-05-21 23:00:00'

Le résultat de la requête renvoie une seule ligne. Toutefois, le résultat attendu doit renvoyer des lignes pour les trois valeurs.

Résolution

Informations sur les mises à jour cumulatives

SQL Server 2012

Le correctif de ce problème a été émis pour la première fois dans la mise à jour cumulative 3 pour SQL Server 2012. Pour plus d’informations sur ce package de mise à jour cumulative, cliquez sur le numéro ci-dessous pour consulter l’article de la base de connaissances Microsoft :

2723749 Package de mise à jour cumulative 3 pour SQL Server 2012Remarque Dans la mesure où les builds sont cumulatives, chaque nouvelle version du correctif contient tous les correctifs et les correctifs de sécurité inclus dans l’ancienne version du correctif SQL Server 2012. Microsoft vous recommande d’appliquer la version de correctif la plus récente qui contient ce correctif. Pour plus d'informations, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft :

2692828 Builds SQL Server 2012 publiées après la sortie de SQL Server 2012 Vous devez appliquer un correctif SQL Server 2012 à une installation de SQL Server 2012.

SQL Server 2008 R2 Service Pack 2

Le correctif de ce problème a été émis pour la première fois dans la mise à jour cumulative 1 pour SQL Server 2008 R2 Service Pack 2. Pour plus d’informations sur la façon d’obtenir ce package de mise à jour cumulative, cliquez sur le numéro ci-dessous pour consulter l’article de la base de connaissances Microsoft :

2720425 Package de mise à jour cumulative 1 pour SQL Server 2008 R2 Service Pack 2Remarque Dans la mesure où les builds sont cumulatives, chaque nouvelle version du correctif contient tous les correctifs et les correctifs de sécurité inclus dans la version précédente du correctif SQL Server 2008 R2. Nous vous recommandons d’appliquer la version de correctif la plus récente qui contient ce correctif. Pour plus d'informations, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft :

2730301 Builds SQL Server 2008 R2 publiées après la sortie de SQL Server 2008 R2 Service Pack 2

SQL Server 2008 R2 SP1

Le correctif de ce problème a été émis pour la première fois dans la mise à jour cumulative 7. Pour plus d’informations sur la façon d’obtenir ce package de mise à jour cumulative pour SQL Server 2008 R2 Service Pack 1, cliquez sur le numéro ci-dessous pour consulter l’article de la base de connaissances Microsoft :

2703282 Package de mise à jour cumulative 7 pour SQL Server 2008 R2 SP1Remarque Dans la mesure où les builds sont cumulatives, chaque nouvelle version du correctif contient tous les correctifs et les correctifs de sécurité inclus dans la version du correctif du Service Pack 1 SQL Server 2008 R2 antérieur. Nous vous recommandons d’appliquer la version de correctif la plus récente qui contient ce correctif. Pour plus d'informations, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft :

2567616 Builds SQL Server 2008 R2 publiées après la sortie de SQL Server 2008 R2 SP1

Informations supplémentaires

Pour reproduire le problème, procédez comme suit :

  1. Exécutez la requête suivante afin de créer une table avec une colonne DateTimeOffset et d’insérer des enregistrements :CREATE TABLE #TestTimeZones (dto datetimeoffset(0)); GO INSERT INTO #TestTimeZones(dto) VALUES ('2011-05-21 23:00:00 -01:00'), ('2011-05-21 23:00:00 +00:00'), ('2011-05-21 23:00:00 +01:00'); GO

  2. Exécutez la requête suivante, et vous pouvez voir que les trois valeurs sont correctement répertoriées dans le résultat retourné :DECLARE @t smalldatetime = '2011-05-21 23:00:00' SELECT dto AS withoutIndex FROM #TestTimeZones WHERE CAST(dto AS smalldatetime)=@t;

  3. Exécutez la requête suivante afin de créer un index sur la colonne « DTO » et de répéter la même requête :CREATE INDEX IX_testTimeZones_Dto ON #TestTimeZones(dto); GO -- Repeat the same query DECLARE @t smalldatetime = '2011-05-21 23:00:00' SELECT dto AS withIndex FROM #TestTimeZones WHERE CAST(dto A smalldatetime)=@t; GO

  4. Exécutez de nouveau la requête à l’étape 2. Cette fois-ci, la requête renvoie une seule ligne.

  5. Exécutez la requête suivante pour supprimer l’index et la table que vous avez créée :DROP INDEX IX_testTimeZones_Dto ON #TestTimeZones; GO DROP TALBE #TestTimeZones; GO

Références

Pour plus d’informations sur les fonctions CAST et CONVERT, accédez au site Web de MSDN suivant :

Informations générales sur les fonctions CAST et CONVERT dans SQL Server

Statut

Microsoft a confirmé l'existence de ce problème dans les produits Microsoft figurant dans la liste des produits concernés par cet article.

Besoin d’aide ?

Vous voulez plus d’options ?

Explorez les avantages de l’abonnement, parcourez les cours de formation, découvrez comment sécuriser votre appareil, etc.

Les communautés vous permettent de poser des questions et d'y répondre, de donner vos commentaires et de bénéficier de l'avis d'experts aux connaissances approfondies.

Ces informations vous ont-elles été utiles ?

Dans quelle mesure êtes-vous satisfait(e) de la qualité de la langue ?
Qu’est-ce qui a affecté votre expérience ?
En cliquant sur Envoyer, vos commentaires seront utilisés pour améliorer les produits et services de Microsoft. Votre administrateur informatique sera en mesure de collecter ces données. Déclaration de confidentialité.

Nous vous remercions de vos commentaires.

×