none
Data no SQL RRS feed

  • Pergunta

  • Senhores, estou com o seguinte impasse, tenho um banco aqui que estava em um SQL Server em ingles, com padrao americano de data. Agora instalei um novo servidor com SQL Server 2012 PT-BR, restaurei o banco, so que quando tentam realizar uma consulta, o SQL retorna o erro, porque esta no padrao de data PT-BR, ja alterei nas opcoes do banco pra ingles o idioma, mais nao funciona, como faço pra resolver isso ?

    BrunoOliveiraBastos

    quarta-feira, 23 de outubro de 2013 15:26

Respostas

  • Bruno,

    Você vai precisar indicar qual o idioma que o usuário do SQL vai utilizar como padrão, ou então, apenas no contexto de execução da sua consulta. Veja abaixo um exemplo em cada situação:

    -- Mudando o idioma padrão da instância SQL
    EXEC sp_defaultlanguage 'sa', 'us_english'
    RECONFIGURE
    GO

    OU utilize apenas no contexto da consulta

    --Configurando apenas o contexto atual da consulta
    
    DECLARE @Data datetime
    Set @Data = '10/15/2011'
    
    SET Language 'us_english'
    SELECT DateName(MONTH, @Data) AS 'Mês'
    GO

    Espero que seja útil para você.

    Abraços,

    Durval Ramos
     Microsoft Partner | MTA - SQL Server 2012
    ----------------------------------
    Se foi resolvido clique "Marcar como resposta" e se foi útil "Votar como Útil"
    quinta-feira, 24 de outubro de 2013 00:01
  • Deleted
    quinta-feira, 24 de outubro de 2013 02:34

Todas as Respostas

  • Bruno boa tarde  não sou experiente em SQL server mas estou estudando para alguns exames 

    Li sobre as opções de COLLATION  isso define o idimoa dos dados e do banco em si . 

    verifique sobre as opções do COLLATION,  

         espero ter  ajudado de alguma forma ..


    Flávio Gomes

    quarta-feira, 23 de outubro de 2013 16:25
  • Bruno,

    Você vai precisar indicar qual o idioma que o usuário do SQL vai utilizar como padrão, ou então, apenas no contexto de execução da sua consulta. Veja abaixo um exemplo em cada situação:

    -- Mudando o idioma padrão da instância SQL
    EXEC sp_defaultlanguage 'sa', 'us_english'
    RECONFIGURE
    GO

    OU utilize apenas no contexto da consulta

    --Configurando apenas o contexto atual da consulta
    
    DECLARE @Data datetime
    Set @Data = '10/15/2011'
    
    SET Language 'us_english'
    SELECT DateName(MONTH, @Data) AS 'Mês'
    GO

    Espero que seja útil para você.

    Abraços,

    Durval Ramos
     Microsoft Partner | MTA - SQL Server 2012
    ----------------------------------
    Se foi resolvido clique "Marcar como resposta" e se foi útil "Votar como Útil"
    quinta-feira, 24 de outubro de 2013 00:01
  • Deleted
    quinta-feira, 24 de outubro de 2013 02:34
  • Bruno,

    Além disso, altere o idioma do usuário que esta conectado ao Banco para English, assim você vai ter compatibilidade nativa com o formato dos dados.


    Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário | MSIT.com]

    sexta-feira, 25 de outubro de 2013 12:51
    Moderador
  • Bruno,

    Na sua aplicação os dados estão sendo retornados corretamente?

    Acredito que este tipo de cenário tem que ser muito bem pensado pois isso poderá gerar uma série de problemas no processo de pesquisa de dados, em alguns casos é necessário até mesmo alterar as configurações regionais do seu ambiente.


    Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário | MSIT.com]

    sexta-feira, 25 de outubro de 2013 12:52
    Moderador