Accedi con Microsoft
Accedi o crea un account.
Salve,
Seleziona un altro account.
Hai più account
Scegli l'account con cui vuoi accedere.

Microsoft distribuisce le correzioni di Microsoft SQL Server 2008 R2 Service Pack 1 (SP1) in un unico file scaricabile. Poiché le correzioni sono cumulative, ogni nuova versione contiene tutti gli hotfix e tutti gli aggiornamenti della sicurezza inclusi nella versione di correzione di SQL Server 2008 R2 Service Pack 1 (SP1) precedente.

Sintomi

Considerare lo scenario descritto di seguito:

  • Si ha una colonna di tipo di dati DateTimeOffset in una tabella in Microsoft sql Server 2008 R2 o in Microsoft sql Server 2012.

  • Si crea un indice nella colonna DateTimeOffset .

  • Si converte il tipo di dati DateTimeOffset in un tipo di dati smalldatetime usando la funzione cast o Convert senza l'argomento Style oppure quando il valore dell'argomento Style è 0.

  • Il risultato della funzione cast o Convert viene usato in un filtro in una query Transact-SQL.

  • Eseguire la query Transact-SQL.

In questo scenario, il risultato restituito dalla query non è corretto perché il filtro non funziona correttamente. Supponiamo ad esempio che la colonna DateTimeOffset denominata "date" contenga i valori seguenti:

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

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

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

Eseguire la query seguente:

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

Il risultato della query restituisce una sola riga. Tuttavia, il risultato previsto deve restituire righe per tutti e tre i valori.

Risoluzione

Informazioni sull'aggiornamento cumulativo

SQL Server 2012

La correzione di questo problema è stata rilasciata per la prima volta in aggiornamento cumulativo 3 per SQL Server 2012. Per altre informazioni su questo pacchetto di aggiornamento cumulativo, fare clic sul numero dell'articolo della Microsoft Knowledge Base seguente per visualizzare l'articolo:

2723749 Pacchetto di aggiornamento cumulativo 3 per SQL Server 2012Nota Poiché le build sono cumulative, ogni nuova versione di correzione contiene tutti gli hotfix e tutti gli aggiornamenti della sicurezza inclusi nella versione precedente di SQL Server 2012 FIX. Microsoft consiglia di applicare l'ultima versione di correzione che contiene questo hotfix. Per ulteriori informazioni, fare clic sul numero dell'articolo seguente per visualizzare l'articolo nella Microsoft Knowledge Base:

2692828 Build di SQL Server 2012 rilasciate dopo il rilascio di SQL Server 2012 È necessario applicare un hotfix di SQL Server 2012 a un'installazione di SQL Server 2012.

SQL Server 2008 R2 Service Pack 2

La correzione di questo problema è stata rilasciata per la prima volta in aggiornamento cumulativo 1 per SQL Server 2008 R2 Service Pack 2. Per altre informazioni su come ottenere questo pacchetto di aggiornamento cumulativo, fare clic sul numero dell'articolo della Microsoft Knowledge Base seguente per visualizzare l'articolo:

2720425 Pacchetto di aggiornamento cumulativo 1 per SQL Server 2008 R2 Service Pack 2Nota Poiché le build sono cumulative, ogni nuova versione di correzione contiene tutti gli hotfix e tutti gli aggiornamenti della sicurezza inclusi nella versione precedente di SQL Server 2008 R2 Fix. Ti consigliamo di considerare l'applicazione della versione di correzione più recente che contiene questo hotfix. Per ulteriori informazioni, fare clic sul numero dell'articolo seguente per visualizzare l'articolo nella Microsoft Knowledge Base:

2730301 Build di SQL Server 2008 R2 rilasciate dopo il rilascio di SQL Server 2008 R2 Service Pack 2

SQL Server 2008 R2 SP1

La correzione di questo problema è stata rilasciata per la prima volta nell'aggiornamento cumulativo 7. Per altre informazioni su come ottenere questo pacchetto di aggiornamento cumulativo per SQL Server 2008 R2 Service Pack 1, fare clic sul numero dell'articolo della Microsoft Knowledge Base seguente per visualizzare l'articolo:

2703282 Pacchetto di aggiornamento cumulativo 7 per SQL Server 2008 R2 SP1Nota Poiché le compilazioni sono cumulative, ogni nuova versione di correzione contiene tutti gli hotfix e tutti gli aggiornamenti della sicurezza inclusi nella versione precedente di SQL Server 2008 R2 Service Pack 1 Fix. Ti consigliamo di considerare l'applicazione della versione di correzione più recente che contiene questo hotfix. Per ulteriori informazioni, fare clic sul numero dell'articolo seguente per visualizzare l'articolo nella Microsoft Knowledge Base:

2567616 Build di SQL Server 2008 R2 rilasciate dopo il rilascio di SQL Server 2008 R2 SP1

Ulteriori informazioni

Per riprodurre il problema, eseguire le operazioni seguenti:

  1. Eseguire la query seguente per creare una tabella con una colonna DateTimeOffset e inserire alcuni record: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. Eseguire la query seguente e si può vedere che tutti e tre i valori sono elencati correttamente nel risultato restituito:DECLARE @t smalldatetime = '2011-05-21 23:00:00' SELECT dto AS withoutIndex FROM #TestTimeZones WHERE CAST(dto AS smalldatetime)=@t;

  3. Eseguire la query seguente per creare un indice nella colonna "dto" e ripetere la stessa query: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. Eseguire di nuovo la query nel passaggio 2. Questa volta, la query restituisce una sola riga.

  5. Eseguire la query seguente per eliminare l'indice e la tabella creata:DROP INDEX IX_testTimeZones_Dto ON #TestTimeZones; GO DROP TALBE #TestTimeZones; GO

Riferimenti

Per altre informazioni sulle funzioni CAST e CONVERT, visitare il sito Web MSDN seguente:

Informazioni generali sulle funzioni CAST e CONVERT in SQL Server

Stato

Microsoft ha confermato che questo problema si verifica nei prodotti elencati nella sezione "Si applica a".

Serve aiuto?

Vuoi altre opzioni?

Esplorare i vantaggi dell'abbonamento e i corsi di formazione, scoprire come proteggere il dispositivo e molto altro ancora.

Le community aiutano a porre e a rispondere alle domande, a fornire feedback e ad ascoltare gli esperti con approfondite conoscenze.

Queste informazioni sono risultate utili?

Come valuti la qualità della lingua?
Cosa ha influito sulla tua esperienza?
Premendo Inviare, il tuo feedback verrà usato per migliorare i prodotti e i servizi Microsoft. L'amministratore IT potrà raccogliere questi dati. Informativa sulla privacy.

Grazie per il feedback!

×