none
Formato de Data

    Question

  • Olá Pessoal, Boa Tarde!

     

    Tenho um sistema funcionando corretamente com o Banco SQL Server 2000 com formato de data mm/dd/aaaa. Agora estou precisando migrar para o SQL Server 2008, porém este banco é em português e o formato é dd/mm/aaaa, então começou a apresentar problemas nos testes, pois a data esperada não é do mesmo formato que vinha sendo trabalhado.

    É possível, mesmo com o banco em português que seja configurado para o banco trabalhar com outro formato (mm/dd/aaaa)? Onde consigo alterar essa configuração?

     

    Obrigado a todos!!

    Thursday, May 26, 2011 6:25 PM

Answers

  • Eduardo, isso quem define é o 'default language' do seu banco, ele define por exemplo esse formado de datas. (Ou o LCID do servidor, mas vamos deixar ele quieto por enquanto)

    Para saber qual o LCID do seu banco:     SELECT @@language, @@langid

     

    Para saber os 'default language' do seu banco:

     

     select *
     from sys.syslanguages
      where langid =
      (select value from master..sysconfigures
       where comment = 'default language')
    

     

    Para saber os 'default language' disponiveis:

     

    		 SELECT
       LangId,
    			 name ,
    			 alias ,
    			 dateformat ,
    			 months ,
    			 shortmonths ,
    			 days ,
    			 lcid
    		 FROM
    			 sys.syslanguages
    		 ORDER BY Alias
    		 
    

     

    Normalmente o padrão é LCID (1033) e  'default language' = 0 (us_english)

     

    Para trocar o 'default language' para 0:

     

     

     sp_configure 'default language', 0
     reconfigure with override
    
    

     

     

    Mas antes de qualquer alteração, procure mais na Net sobre o LCID e 'default language' no SQLServer

     


    Tks. Fausto Fiorese Branco MCTS, MCITP/DBA 2005 | MCITP/DBA 2008 São Paulo - Brasil * http://www.linkedin.com/in/faustobranco
    • Marked as answer by EBellinat Friday, May 27, 2011 1:16 PM
    Thursday, May 26, 2011 6:52 PM
  • Eduardo,

    Se você alterar somente o idioma do servidor (da instância), não resolverá. Veja que apesar de rodar o comando:

      EXEC sp_configure 'default language', 0

      Reconfigure 


    Quando você excutar:

      SELECT @@language, @@langid


    O resultado ainda será: Português - 9

    Para resolver, você precisará alterar o idioma dos logins dos seus usuários. Os logins ainda estão em português.

    Então você pode proceder de dois modos:

    1) ALTER LOGIN [sa] WITH DEFAULT_LANGUAGE=[us_english]

    2) Clicar com o botão direito sobre o Login, escolher a opção "Properties". Na aba "General", alterar a caixa "Default Language" para "English".

     

    Obs.: Depois que alterar o idioma dos seus logins, reinicie o Magament Studio ou pelo menos abra uma nova sessão.


    Roberson Ferreira


    Se esta sugestão for útil, por favor, classifique-a como útil.
    Se ela lhe ajudar a resolver o problema, por favor, marque-a como Resposta.

    • Marked as answer by EBellinat Friday, May 27, 2011 1:15 PM
    Thursday, May 26, 2011 11:02 PM

All replies

  • Eduardo, isso quem define é o 'default language' do seu banco, ele define por exemplo esse formado de datas. (Ou o LCID do servidor, mas vamos deixar ele quieto por enquanto)

    Para saber qual o LCID do seu banco:     SELECT @@language, @@langid

     

    Para saber os 'default language' do seu banco:

     

     select *
     from sys.syslanguages
      where langid =
      (select value from master..sysconfigures
       where comment = 'default language')
    

     

    Para saber os 'default language' disponiveis:

     

    		 SELECT
       LangId,
    			 name ,
    			 alias ,
    			 dateformat ,
    			 months ,
    			 shortmonths ,
    			 days ,
    			 lcid
    		 FROM
    			 sys.syslanguages
    		 ORDER BY Alias
    		 
    

     

    Normalmente o padrão é LCID (1033) e  'default language' = 0 (us_english)

     

    Para trocar o 'default language' para 0:

     

     

     sp_configure 'default language', 0
     reconfigure with override
    
    

     

     

    Mas antes de qualquer alteração, procure mais na Net sobre o LCID e 'default language' no SQLServer

     


    Tks. Fausto Fiorese Branco MCTS, MCITP/DBA 2005 | MCITP/DBA 2008 São Paulo - Brasil * http://www.linkedin.com/in/faustobranco
    • Marked as answer by EBellinat Friday, May 27, 2011 1:16 PM
    Thursday, May 26, 2011 6:52 PM
  • Eduardo,

     

    Você pode alterar o idioma padrão da instância, o que influencia no formato de data.

    Vá nas propriedades da instância e faça esta alteração e realize novos testes.

     

    Att.


    Erickson Ricci SQL Server DBA @ BB Mapfre ericksonricci.wordpress.com MCTS Database Developer 2008, Database Administrator 2008
    Thursday, May 26, 2011 6:52 PM
  • Fausto,

     

    A language estava 9 com LCID 2070, então alterei para 0 com LCID 1033.

     

    No banco SQL 2000, ao executar uma procedure que tem como parâmetro um valor como DateTime, então eu executava exec PROC '05/20/2011' funciona corretamente.

     

    Então, no SQL 2008, só consigo executar com a data no formato '20/05/2011', mesmo alterando a configuração conforme você informou e quando tento passar a data como 'MM/DD/AAAA' apresenta erro (Erro ao converter tipo de dados varchar em datetime.)

    Thursday, May 26, 2011 7:39 PM
  • Eduardo,

    Se você alterar somente o idioma do servidor (da instância), não resolverá. Veja que apesar de rodar o comando:

      EXEC sp_configure 'default language', 0

      Reconfigure 


    Quando você excutar:

      SELECT @@language, @@langid


    O resultado ainda será: Português - 9

    Para resolver, você precisará alterar o idioma dos logins dos seus usuários. Os logins ainda estão em português.

    Então você pode proceder de dois modos:

    1) ALTER LOGIN [sa] WITH DEFAULT_LANGUAGE=[us_english]

    2) Clicar com o botão direito sobre o Login, escolher a opção "Properties". Na aba "General", alterar a caixa "Default Language" para "English".

     

    Obs.: Depois que alterar o idioma dos seus logins, reinicie o Magament Studio ou pelo menos abra uma nova sessão.


    Roberson Ferreira


    Se esta sugestão for útil, por favor, classifique-a como útil.
    Se ela lhe ajudar a resolver o problema, por favor, marque-a como Resposta.

    • Marked as answer by EBellinat Friday, May 27, 2011 1:15 PM
    Thursday, May 26, 2011 11:02 PM
  • Funcionou corretamente, quando executado a procedure.

    Agora irei realizar outros testes, mas por enquanto, muito obrigado a todos!!

    Friday, May 27, 2011 1:15 PM