none
Datas no SQLServer 2008 Developer RRS feed

  • Pergunta

  • Como se faz para mudar a exibição de datas (yyyy-MM-dd) para o formato brasileiro

    (dd-MM-yyyy), sem fazer conversão, ou seja quero o default para o formato brasileiro

    Grato pela ajuda

    []s


    • Editado PQueiroz segunda-feira, 5 de setembro de 2011 00:49
    segunda-feira, 5 de setembro de 2011 00:49

Respostas

  • Mas continua a mostrar as datas no formato yyyy-mm-dd

    Será que é necessário fazer atualização sp1 no meu SQL Server 2008 Developer??!

    []s

     

    Queiroz,

    se você deseja apresentar os dados cadastrados em sua tabela em formato diferente do yyyy-mm-dd, você precisará usar a função Convert. O fato de você mudar o idioma não influencia em como os dados são apresentados, mas sim, em como você insere e atualiza as informações no banco.

    Assim, se seu idioma for "Português (Brasil)", você deverá inserir os dados como neste exemplo: Insert Into TABELA (CampoData) Values ('25/10/2011').

    Mas se o idioma for "English", você utilizará Insert Into TABELA (CampoData) Values ('10/25/2011').

    Mas o idioma não influencia no modo como as informações são armazenadas. Isto é responsabilidade do SQL. Consequentemente, o idioma não reflete na apresentação das informações.

    Por isso sugiro o Convert. No exemplo a seguir, apesar do idioma estar em inglês, em apresento a data no formato dd/mm/yyyy (através do parâmetro 103):

    Select Convert(VarChar(10), CampoData, 103) From TABELA

    Se quiser conhecer os outros parâmetros do Convert, com os quais é possível formatar a apresentação de data e hora, acesse http://msdn.microsoft.com/pt-br/library/ms187928.aspx.

    Pois como disse, não me parece que alterar o idioma resolverá sua questão.

    Fabrizzio: neste caso, nem o Set DateFormat ajudará, visto que também tem outro intuito.


    Roberson Ferreira - Database Developer
    Acesse: www.robersonferreira.com.br

    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.

    • Marcado como Resposta PQueiroz segunda-feira, 5 de setembro de 2011 16:46
    segunda-feira, 5 de setembro de 2011 15:55
  • Queiroz, entendo sua "surpresa" com a diferença nessa questão de data entre o Firebird e o SQL Server. Mas os bancos tem suas diferenças mesmo. Utilizei pouco o Firebird, mas pode acreditar: o SQL Server é incomparavelmente superior. Na empresa em que trabalho não teve um cliente que optasse por continuar com o Firebird. Todos decidiram migrar para o SQL quando a proposta foi feita. Ainda usamos um pouco do Firebird, mas muito pouco mesmo.

    Em relação ao Delphi, utilizo-o há 11 anos. Desses 11, os últimos 8 foram com SQL Server. E não tivemos problemas com isso. Acredito que é questão de adaptação. Se precisar de alguma ajuda, é só falar.


    Roberson Ferreira - Database Developer
    Acesse: www.robersonferreira.com.br
    Email: contato@robersonferreira.com.br

    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.

    • Editado Roberson Ferreira _ terça-feira, 6 de setembro de 2011 00:23
    • Marcado como Resposta PQueiroz terça-feira, 6 de setembro de 2011 01:41
    terça-feira, 6 de setembro de 2011 00:22

Todas as Respostas

  • Queiroz,

    para alterar a exbição de datas, já que você quer algo definitivo, você precisará mudar o idioma do SQL e provavelmente dos seus logins. Segue informações:

     

    -- Para mostrar o idioma atual

    Use SeuBanco;

    Select @@langid, @@language

     

    -- Mudando o idioma padrão do servidor para 27 (português)

    Exec sp_configure 'default language', 27

     

    -- Mudando o idioma de cada login do servidor (também pode ser feito pela

    -- interface gráfica: botão direito sobre o Login e clicar em "Propriedades")

    Exec sp_defaultlanguage 'sa', 'Português (Brasil)'

     

    -- "Atualizando" configurações alteradas

    Reconfigure 

     

    Obs. 1: Já vi casos em que foi necessário reiniciar o servido do SQL. Atente-se a isso.

    Obs. 2: Se quiser listar os idiomas disponíveis e seus respectivos códigos, segue a instrução:

     

    Use Master

    Select * From SysLanguages


    Roberson Ferreira - Database Developer
    Acesse: www.robersonferreira.com.br

    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.

    segunda-feira, 5 de setembro de 2011 01:23
  • Caro Roberson, grato pela atenção.

    Fiz a verificação do idioma em 'Segurança - Logons', no usuário logado ou no 'sa', em propriedades consta: Bco de dados padrão: master e Idioma padrão: Brasilian.

    Mas continua a mostrar as datas no formato yyyy-mm-dd

    Será que é necessário fazer atualização sp1 no meu SQL Server 2008 Developer??!

    []s

     

    segunda-feira, 5 de setembro de 2011 14:13
  • PQueiroz,

     

    ALem das sugestões do roberson, tente o SET DATEFORMAT, segue exemplo:

    set dateformat ymd

    declare @data datetime

    set @data = '2011-12-30'

    set dateformat dmy

    set @data = '30-12-2011'


    Fabrizzio A. Caputo
    Certificações:
    Oracle OCA 11g
    MCITP SQL Server 2008 Implementation and Maintenance
    MCITP SQL Server 2008 Developer
    Blog Pessoal: www.fabrizziocaputo.wordpress.com
    Blog Empresa: www.tripletech.com.br/blog
    Twitter: @FabrizzioCaputo
    Email: fabrizzio.antoniaci@gmail.com
    segunda-feira, 5 de setembro de 2011 14:43
    Moderador
  • Mas continua a mostrar as datas no formato yyyy-mm-dd

    Será que é necessário fazer atualização sp1 no meu SQL Server 2008 Developer??!

    []s

     

    Queiroz,

    se você deseja apresentar os dados cadastrados em sua tabela em formato diferente do yyyy-mm-dd, você precisará usar a função Convert. O fato de você mudar o idioma não influencia em como os dados são apresentados, mas sim, em como você insere e atualiza as informações no banco.

    Assim, se seu idioma for "Português (Brasil)", você deverá inserir os dados como neste exemplo: Insert Into TABELA (CampoData) Values ('25/10/2011').

    Mas se o idioma for "English", você utilizará Insert Into TABELA (CampoData) Values ('10/25/2011').

    Mas o idioma não influencia no modo como as informações são armazenadas. Isto é responsabilidade do SQL. Consequentemente, o idioma não reflete na apresentação das informações.

    Por isso sugiro o Convert. No exemplo a seguir, apesar do idioma estar em inglês, em apresento a data no formato dd/mm/yyyy (através do parâmetro 103):

    Select Convert(VarChar(10), CampoData, 103) From TABELA

    Se quiser conhecer os outros parâmetros do Convert, com os quais é possível formatar a apresentação de data e hora, acesse http://msdn.microsoft.com/pt-br/library/ms187928.aspx.

    Pois como disse, não me parece que alterar o idioma resolverá sua questão.

    Fabrizzio: neste caso, nem o Set DateFormat ajudará, visto que também tem outro intuito.


    Roberson Ferreira - Database Developer
    Acesse: www.robersonferreira.com.br

    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.

    • Marcado como Resposta PQueiroz segunda-feira, 5 de setembro de 2011 16:46
    segunda-feira, 5 de setembro de 2011 15:55
  • Grato pela ajuda. Mas eu acho estranho esso modelo do SQL Server; estou acostumado com

    o Firebird: os campos 'datas' já são gravados no formato dd.mm.yyyy. 

    No Delphi e SQL Server, fica complicado trabalhar com campos 'datas' .

    grande Abraço.

    segunda-feira, 5 de setembro de 2011 19:04
  • Queiroz, entendo sua "surpresa" com a diferença nessa questão de data entre o Firebird e o SQL Server. Mas os bancos tem suas diferenças mesmo. Utilizei pouco o Firebird, mas pode acreditar: o SQL Server é incomparavelmente superior. Na empresa em que trabalho não teve um cliente que optasse por continuar com o Firebird. Todos decidiram migrar para o SQL quando a proposta foi feita. Ainda usamos um pouco do Firebird, mas muito pouco mesmo.

    Em relação ao Delphi, utilizo-o há 11 anos. Desses 11, os últimos 8 foram com SQL Server. E não tivemos problemas com isso. Acredito que é questão de adaptação. Se precisar de alguma ajuda, é só falar.


    Roberson Ferreira - Database Developer
    Acesse: www.robersonferreira.com.br
    Email: contato@robersonferreira.com.br

    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.

    • Editado Roberson Ferreira _ terça-feira, 6 de setembro de 2011 00:23
    • Marcado como Resposta PQueiroz terça-feira, 6 de setembro de 2011 01:41
    terça-feira, 6 de setembro de 2011 00:22