Bei Microsoft anmelden
Melden Sie sich an, oder erstellen Sie ein Konto.
Hallo,
Wählen Sie ein anderes Konto aus.
Sie haben mehrere Konten.
Wählen Sie das Konto aus, mit dem Sie sich anmelden möchten.

Microsoft vertreibt Microsoft SQL Server 2008 R2 Service Pack 1 (SP1)-Fixes als eine herunterladbare Datei. Da die Fixes kumulativ sind, enthält jede neue Version alle Hotfixes und alle Sicherheitsupdates, die in der vorherigen Version von SQL Server 2008 R2 Service Pack 1 (SP1) enthalten sind.

Problembeschreibung

Stellen Sie sich folgendes Szenario vor:

  • Sie verfügen über eine DateTimeOffset -Datentypspalte in einer Tabelle in Microsoft SQL Server 2008 R2 oder in Microsoft SQL Server 2012.

  • Sie erstellen einen Index für die DateTimeOffset -Spalte.

  • Sie konvertieren den DateTimeOffset -Datentyp in einen smalldatetime -Datentyp, indem Sie die Umwandlungs -oder Konvertierungs Funktion ohne das Style -Argument verwenden oder wenn der Wert des Arguments Style0ist.

  • Das Ergebnis der Umwandlungs -oder Convert -Funktion wird in einem Filter in einer Transact-SQL-Abfrage verwendet.

  • Sie führen die Transact-SQL-Abfrage aus.

In diesem Szenario ist das von der Abfrage zurückgegebene Ergebnis falsch, da der Filter nicht ordnungsgemäß funktioniert. Angenommen, die DateTimeOffset -Spalte mit dem Namen "Date" enthält die folgenden Werte:

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

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

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

Führen Sie die folgende Abfrage aus:

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

Das Ergebnis der Abfrage gibt nur eine Zeile zurück. Das erwartete Ergebnis sollte jedoch Zeilen für alle drei Werte zurückgeben.

Fehlerbehebung

Informationen zum kumulativen Update

SQL Server 2012

Der Fix für dieses Problem wurde erstmals im kumulativen Update 3 für SQL Server 2012 veröffentlicht. Wenn Sie weitere Informationen zu diesem kumulativen Updatepaket erhalten möchten, klicken Sie auf die folgende Artikelnummer, um den Artikel in der Microsoft Knowledge Base anzuzeigen:

2723749 Kumulatives Updatepaket 3 für SQL Server 2012Hinweis Da die Builds kumulativ sind, enthält jede neue Fix-Version alle Hotfixes und alle Sicherheitsupdates, die in der vorherigen Version von SQL Server 2012 behoben wurden. Microsoft empfiehlt, die neueste Fix-Version zu verwenden, die diesen Hotfix enthält. Weitere Informationen finden Sie im folgenden Artikel der Microsoft Knowledge Base:

2692828 Die SQL Server 2012-Builds, die nach der Veröffentlichung von SQL Server 2012 veröffentlicht wurden Sie müssen einen SQL Server 2012-Hotfix auf eine Installation von SQL Server 2012 anwenden.

SQL Server 2008 R2 Service Pack 2

Der Fix für dieses Problem wurde erstmals im kumulativen Update 1 für SQL Server 2008 R2 Service Pack 2 veröffentlicht. Wenn Sie weitere Informationen zum Abrufen dieses kumulativen Updatepakets benötigen, klicken Sie auf die folgende Artikelnummer, um den Artikel in der Microsoft Knowledge Base anzuzeigen:

2720425 Kumulatives Update Paket 1 für SQL Server 2008 R2 Service Pack 2Hinweis Da die Builds kumulativ sind, enthält jede neue Fix-Version alle Hotfixes und alle Sicherheitsupdates, die mit der vorherigen Version von SQL Server 2008 R2 behoben wurden. Wir empfehlen, dass Sie die neueste Fix-Version anwenden, die diesen Hotfix enthält. Weitere Informationen finden Sie im folgenden Artikel der Microsoft Knowledge Base:

2730301 Die SQL Server 2008 R2-Builds, die nach dem Veröffentlichen von SQL Server 2008 R2 Service Pack 2 veröffentlicht wurden

SQL Server 2008 R2 SP1

Der Fix für dieses Problem wurde erstmals im kumulativen Update 7 veröffentlicht. Wenn Sie weitere Informationen zum beziehen dieses kumulativen Updatepakets für SQL Server 2008 R2 Service Pack 1 benötigen, klicken Sie auf die folgende Artikelnummer, um den Artikel in der Microsoft Knowledge Base anzuzeigen:

2703282 Kumulatives Updatepaket 7 für SQL Server 2008 R2 SP1Hinweis Da die Builds kumulativ sind, enthält jede neue Fix-Version alle Hotfixes und alle Sicherheitsupdates, die in der vorherigen SQL Server 2008 R2 Service Pack 1 Fix-Version enthalten waren. Wir empfehlen, dass Sie die neueste Fix-Version anwenden, die diesen Hotfix enthält. Weitere Informationen finden Sie im folgenden Artikel der Microsoft Knowledge Base:

2567616 Die SQL Server 2008 R2-Builds, die nach der Veröffentlichung von SQL Server 2008 R2 SP1 veröffentlicht wurden

Weitere Informationen

Führen Sie die folgenden Schritte aus, um das Problem zu reproduzieren:

  1. Führen Sie die folgende Abfrage aus, um eine Tabelle mit einer DateTimeOffset -Spalte zu erstellen und einige Datensätze einzufügen: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. Führen Sie die folgende Abfrage aus, und Sie können sehen, dass alle drei Werte im zurückgegebenen Ergebnis richtig aufgeführt sind:DECLARE @t smalldatetime = '2011-05-21 23:00:00' SELECT dto AS withoutIndex FROM #TestTimeZones WHERE CAST(dto AS smalldatetime)=@t;

  3. Führen Sie die folgende Abfrage aus, um einen Index für die Spalte "DTO" zu erstellen und die gleiche Abfrage zu wiederholen: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. Führen Sie die Abfrage erneut in Schritt 2 aus. Dieses Mal gibt die Abfrage nur eine Zeile zurück.

  5. Führen Sie die folgende Abfrage aus, um den Index und die von Ihnen erstellte Tabelle zu löschen:DROP INDEX IX_testTimeZones_Dto ON #TestTimeZones; GO DROP TALBE #TestTimeZones; GO

Informationsquellen

Weitere Informationen zu den Funktionen CAST und Convert finden Sie auf der folgenden MSDN-Website:

Allgemeine Informationen zu den Funktionen CAST und Convert in SQL Server

Status

Microsoft hat bestätigt, dass es sich hierbei um ein Problem bei den in diesem Artikel genannten Microsoft-Produkten handelt.

Benötigen Sie weitere Hilfe?

Möchten Sie weitere Optionen?

Erkunden Sie die Abonnementvorteile, durchsuchen Sie Trainingskurse, erfahren Sie, wie Sie Ihr Gerät schützen und vieles mehr.

In den Communities können Sie Fragen stellen und beantworten, Feedback geben und von Experten mit umfassendem Wissen hören.

War diese Information hilfreich?

Wie zufrieden sind Sie mit der Sprachqualität?
Was hat Ihre Erfahrung beeinflusst?
Wenn Sie auf "Absenden" klicken, wird Ihr Feedback zur Verbesserung von Produkten und Diensten von Microsoft verwendet. Ihr IT-Administrator kann diese Daten sammeln. Datenschutzbestimmungen.

Vielen Dank für Ihr Feedback!

×