Usuário com melhor resposta
Datas no SQLServer 2008 Developer

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
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.brSe 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
-
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.brSe 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
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.brSe 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 _ segunda-feira, 5 de setembro de 2011 01:24
-
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
-
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 -
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.brSe 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
-
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.
-
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.brSe 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