Usuário com melhor resposta
Ajuda SQl Server 2008

Pergunta
-
Boa tarde,
Tenho servidores com o SQL 2008. Estou tentando realizar a seguinte consulta:
Select isnull(max(convert(char(10),data,103)),convert(char(10),GETDATE(),103)) as Data , DATEDIFF(minute,isnull(max(data),GETDATE()),getdate()) as HorasPassadas , DATEDIFF(day,isnull(max(convert(char(10),data,103)),convert(char(10),GETDATE(),103)),getdate()) as DiasPassados, CAST(DATEDIFF(MI, max(data), GETDATE()) / 60 AS VARCHAR(4)) + ':' + CAST(DATEDIFF(MI, max(data), GETDATE()) % 60 AS VARCHAR(4)) + ':' + CAST(DATEDIFF(SS, max(data), GETDATE()) % 60 AS VARCHAR(4)) as Tempo from tbFuncionarioHistorico where idfuncionario=2565089
Em um dos servidores funciona perfeitamente porém no outro da o seguinte erro:
Msg 241, Level 16, State 1, Line 1
Conversion failed when converting date and/or time from character string.Será que é alguma configuração no servidor?
Obrigado.
terça-feira, 19 de março de 2013 20:53
Respostas
-
Alexandre resolvido. Percebi que o usuário do sql no servidor de produção foi criado como default language "portuguese" e no servidor de homologação como "English", foi somente alterar para "portuguese" no servidor de homologação que funcionou.
De qualquer forma obrigado pela ajuda.
- Marcado como Resposta Carmo Freitas quarta-feira, 20 de março de 2013 20:37
quarta-feira, 20 de março de 2013 20:37
Todas as Respostas
-
Carmo, nos 2 servidores a tabela tbFuncionarioHistorico é identica ? tem exatamente os mesmos dados ? ao que indica ha uma string que não esta conseguindo ser convertida para datetime.
Alexandre Matayosi Conde Mauricio.
- Sugerido como Resposta Roberson Naves terça-feira, 19 de março de 2013 22:34
terça-feira, 19 de março de 2013 21:23 -
Sim Alexandre um servidor é espelho do outro. Mesma Collation também. Obrigado.quarta-feira, 20 de março de 2013 17:14
-
Agora complicou, se os dados são identicos e o collation tambem...voce ja tentou fazer um select * nessa condição e verificar os campos que voce faz conversão de data para ver se ha algum caracter que não pode ser convertido (caracteres especiais, virgula, etc)?
Alexandre Matayosi Conde Mauricio.
quarta-feira, 20 de março de 2013 18:38 -
Então Alexandre o erro acontece especificamente nesse select:
select
DATEDIFF(day,isnull(max(convert(char(10),data,103)),convert(char(10),GETDATE(),103)),getdate()) as DiasPassados
from tbFuncionarioHistorico where idfuncionario=2567724No inicio coloquei um select maior.
Peguei o mesmo select na maquina de homologação, que é atualizado diariamente com os mesmo dados de produção e o erro aparece:
Msg 241, Level 16, State 1, Line 1
Conversion failed when converting date and/or time from character string.olhei as configurações dos servidores e estão idênticas. Muito estranho.
quarta-feira, 20 de março de 2013 19:10 -
Alexandre resolvido. Percebi que o usuário do sql no servidor de produção foi criado como default language "portuguese" e no servidor de homologação como "English", foi somente alterar para "portuguese" no servidor de homologação que funcionou.
De qualquer forma obrigado pela ajuda.
- Marcado como Resposta Carmo Freitas quarta-feira, 20 de março de 2013 20:37
quarta-feira, 20 de março de 2013 20:37