Entrar com a conta da Microsoft
Entrar ou criar uma conta.
Olá,
Selecionar uma conta diferente.
Você tem várias contas
Escolha a conta com a qual você deseja entrar.

A Microsoft distribui o Microsoft SQL Server 2008 R2 Service Pack 1 (SP1) corre como um arquivo que pode ser baixado. Como as correções são cumulativas, cada nova versão contém todos os hotfixes e todas as correções de segurança que foram incluídas com o lançamento de correção anterior do SQL Server 2008 R2 Service Pack 1 (SP1).

Sintomas

Considere o seguinte cenário:

  • Você tem uma coluna de tipo de dados DateTimeOffset em uma tabela no Microsoft sql Server 2008 R2 ou no Microsoft sql Server 2012.

  • Crie um índice na coluna DateTimeOffset .

  • Converta o tipo de dados DateTimeOffset em um tipo de dados smalldatetime usando a função Cast ou Convert sem o argumento Style ou quando o valor do argumento Style for 0.

  • O resultado da função Cast ou Convert é usado em um filtro em uma consulta Transact-SQL.

  • Você executa a consulta Transact-SQL.

Nesse cenário, o resultado retornado pela consulta está incorreto porque o filtro não funciona corretamente. Por exemplo, suponha que a coluna DateTimeOffset denominada "Date" contém os seguintes valores:

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

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

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

Você executa a seguinte consulta:

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

O resultado da consulta retorna apenas uma linha. No entanto, o resultado esperado deve retornar linhas para todos os três valores.

Resolução

Informações sobre a atualização cumulativa

SQL Server 2012

A correção para esse problema foi lançada pela primeira vez na atualização cumulativa 3 para SQL Server 2012. Para obter mais informações sobre esse pacote de atualizações cumulativas, clique no número abaixo para ler o artigo na base de dados de conhecimento da Microsoft:

2723749 Pacote de atualizações cumulativas 3 para SQL Server 2012Observação Como as compilações são cumulativas, cada nova versão de correção contém todos os hotfixes e todas as correções de segurança incluídas na versão anterior do SQL Server 2012 Fix. A Microsoft recomenda que você considere a aplicação do lançamento de correção mais recente que contém esse hotfix. Para obter mais informações, clique no número abaixo para ler os artigos na Base de Dados de Conhecimento Microsoft:

2692828 As compilações do SQL Server 2012 lançadas após o lançamento do SQL Server 2012 Você deve aplicar um hotfix do SQL Server 2012 a uma instalação do SQL Server 2012.

SQL Server 2008 R2 Service Pack 2

A correção para esse problema foi lançada pela primeira vez na atualização cumulativa 1 para SQL Server 2008 R2 Service Pack 2. Para obter mais informações sobre como obter esse pacote de atualização cumulativa, clique no número abaixo para ler o artigo na base de dados de conhecimento da Microsoft:

2720425 Pacote de atualização cumulativa 1 para SQL Server 2008 R2 Service Pack 2Observação Como as compilações são cumulativas, cada nova versão de correção contém todos os hotfixes e todas as correções de segurança incluídas na versão anterior do SQL Server 2008 R2. Recomendamos que você considere a aplicação do lançamento de correção mais recente que contém esse hotfix. Para obter mais informações, clique no número abaixo para ler os artigos na Base de Dados de Conhecimento Microsoft:

2730301 Versões do SQL Server 2008 R2 lançadas após a liberação do SQL Server 2008 R2 Service Pack 2

SQL Server 2008 R2 SP1

A correção para esse problema foi lançada pela primeira vez na atualização cumulativa 7. Para obter mais informações sobre como obter este pacote de atualização cumulativa do SQL Server 2008 R2 Service Pack 1, clique no número abaixo para ler o artigo na base de dados de conhecimento da Microsoft:

2703282 Pacote de atualizações cumulativas 7 para SQL Server 2008 R2 SP1Observação Como as compilações são cumulativas, cada nova versão de correção contém todos os hotfixes e todas as correções de segurança incluídas no lançamento anterior do SQL Server 2008 R2 Service Pack 1. Recomendamos que você considere a aplicação do lançamento de correção mais recente que contém esse hotfix. Para obter mais informações, clique no número abaixo para ler os artigos na Base de Dados de Conhecimento Microsoft:

2567616 As compilações do SQL Server 2008 R2 que foram lançadas após a liberação do SQL Server 2008 R2 SP1

Informações adicionais

Para reproduzir o problema, siga estas etapas:

  1. Execute a consulta a seguir para criar uma tabela com uma coluna DateTimeOffset e inserir alguns registros: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. Execute a seguinte consulta, e você pode ver que todos os três valores estão listados corretamente no resultado retornado:DECLARE @t smalldatetime = '2011-05-21 23:00:00' SELECT dto AS withoutIndex FROM #TestTimeZones WHERE CAST(dto AS smalldatetime)=@t;

  3. Execute a consulta a seguir para criar um índice na coluna "dto" e para repetir a mesma consulta: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. Execute a consulta na etapa 2 novamente. Desta vez, a consulta retorna apenas uma linha.

  5. Execute a seguinte consulta para excluir o índice e a tabela que você criou:DROP INDEX IX_testTimeZones_Dto ON #TestTimeZones; GO DROP TALBE #TestTimeZones; GO

Referências

Para obter mais informações sobre as funções CAST e CONVERT, acesse o seguinte website da MSDN:

Informações gerais sobre as funções converter e converter no SQL Server

Status

A Microsoft confirmou que este é um problema nos produtos Microsoft listados na seção "Aplicável a".

Precisa de mais ajuda?

Quer mais opções

Explore os benefícios da assinatura, procure cursos de treinamento, saiba como proteger seu dispositivo e muito mais.

As comunidades ajudam você a fazer e responder perguntas, fazer comentários e ouvir especialistas com conhecimento avançado.

Essas informações foram úteis?

Qual é o seu grau de satisfação com a qualidade do idioma?
O que afetou sua experiência?
Ao pressionar enviar, seus comentários serão usados para aprimorar os produtos e serviços da Microsoft. Seu administrador de TI poderá coletar esses dados. Política de Privacidade.

Agradecemos seus comentários!

×