Mudar formato de data e hora do Sql Server 2008 R2 para português(Brasileiro)

Recentemente tive um problema com o SQL Server 2008 em inglês, ao enviar uma sql para ser processada por ele com datas ex:


UPDATE Empresa  SET Empresa.IpWAN='201.40.12.203', Empresa.IpWANDataHoraAtu ='19/05/12 17:51:53:863'  from Empresa inner join Computadores on Empresa.Cnpj_Cpf = Computadores.Cnpj_Cpf

ele sempre retornava o seguinte erro:

The conversion of a varchar data type to a datetime data type resulted in an out-of-range value. The statement has been terminated.

pesquisando na internet achei um amontoado de scripts que so permitiam mudar o formato de data/hora dentro da conecção como por ex:


--Seta formato de data por conecção

SET DATEFORMAT dmy --Padrão brasileiro

porem eu prescisava de uma solução permanente, pois não iria recompilar todos aplicativos para incluir este script, o q seria impossivel pois alguns nem meus são.

Ai pesquisando mais um pouco achei estes:


--Configura linguagem padrao do servidor

exec sp_configure'default language', 27--Brazilian

reconfigure with override

--Configura linguagem padrao(Portugues) para o usuario SA

ALTER LOGIN sa WITH DEFAULT_LANGUAGE= Brazilian --para ingles USA use: English

Quando executados eles mudam a linguagem do servidor e do usuario sa para portugues Brasil e consequentemente o formato de data e hora de: mdy para: dmy.

Muita atenção, pois se utilizar mais de um usuario no SQL Server, o segundo script devera ser rodado para cada um dos usuarios cadastrados, no meu caso não faz diferença, pois quem loga são os sistemas e não os usuarios(no SQL Server).

Abaixo vai mais dois scripts, o primeiro e para consultar todas as linguagens disponiveis, e o segundo para consultar a linguagem padrão rodando no SQL Server.


--Obtem lista de liguagens disponiveis

select * from syslanguages

--Verifica limguagem padrão

select name ,alias, dateformat from syslanguages

where langid=(select value from master..sysconfigures

where comment ='default language');


3 comentários em “Mudar formato de data e hora do Sql Server 2008 R2 para português(Brasileiro)

    Júlio disse:
    6 de dezembro de 2013 às 19:16

    Obrigado!! só o WITHDEFAULT_LANGUAGE q não tá funcionando :s

      glaysonjunio respondido:
      9 de dezembro de 2013 às 21:32

      Corrigido amigo, obrigado pelo feedback…

    Fernando disse:
    22 de abril de 2014 às 17:44

    Fiquei 02 dias achando que era meu código, mas era a linguagem do banco. Mudei de Brazilian para English (pois meu primeiro banco era em English) e deu certo. Obrigado por compartilhar!

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s