Formatar data em uma VIEW

26/03/2015

Boa tarde,

Qual é a forma mais profissional de formatar uma data do formato YYYYMMDD para DD/MM/YYYY em uma VIEW no SQL SERVER 2008 R2?

[img:descricao=Formatação de data em uma VIEW]http://arquivo.devmedia.com.br/forum/imagem/402352-20150326-125643.jpg[/img]


Existe algum recurso no Management Studio que faça essa formatação?

Desde já agradeço.

José Jacinto

Melhor resposta

26/03/2015

Esqueça o design do Studio Management ...

Crie a view manualmente, via query, exatamente como definido pelo Jothaz :

	
CREATE VIEW teste
AS
SELECT ID,EstadoID,NomeCidade
      ,convert(char,dt,103) as dt
  FROM Cidade


O produto final será o mesmo, com o convert adequado a sua necessidade...

Marcos P

Responder Citar

Outras Respostas

26/03/2015

Randrade

Adicione o CONVERT(CHAR,CAMPO,103) no campo desejado.

Ficando mais ou menos assim:

SELECT D2_COD, CONVERT(CHAR,D2_EMISSAO,103) AS NomeCampo
	from DS2010 INNER JOIN...
Responder Citar

26/03/2015

Jothaz

Só completando a informação do Randrade quando puder dê uma olhada aqui: Manipulando Data no SQL Server
Responder Citar

26/03/2015

José Jacinto

Olá. Apliquei a sugestão acima e li sobre Data no SQL Server no link, porém ainda não tenho o resultado esperado. Talvez eu esteja fazendo algo errado ou esperando algo diferente do que as funções podem fazer.

Vou explicar detalhadamente o que estou esperando:

Estou criando uma VIEW pelo Management Studio com SQL SERVER 2008 R2 com uma tabela do nosso ERP para montar uma conexão através do MS-EXCEL para servir algumas informações gerenciais para um departamento.
O que estou esperando é que diretamente na VIEW (Management Studio) a data já fique formatada e que ao conectar do Excel nessa view a data (lá no excel) já esteja no formato DD/MM/YYYY.

Isso é possível?

Veja abaixo as imagens:

Aqui espero que a data já fique formatada. Isso é possível? Ou devo fazer de outra forma?

[img:descricao=SQL]http://arquivo.devmedia.com.br/forum/imagem/402352-20150326-145709.jpg[/img]


Aqui seria o resultado final já na planilha que a data vem sem formatação. Isso é possível?

[img:descricao=Tabela Excel]http://arquivo.devmedia.com.br/forum/imagem/402352-20150326-145817.jpg[/img]
Responder Citar

26/03/2015

Jothaz

Sim é possível!

É só criar a view com o convert como no script abaixo:

CREATE VIEW teste
AS
SELECT ID,EstadoID,NomeCidade
      ,convert(char,dt,103) as dt
  FROM Cidade


Como pode ser visto na imagem abaixo o select na view fica com o formato correto:

[img]http://arquivo.devmedia.com.br/forum/imagem/418027-20150326-152930.png[/img]

Depois é só criar a planilha e obter os dados do SQL Server e escolher a view como fonte e vai funcionar como na imagem abaixo:

[img]http://arquivo.devmedia.com.br/forum/imagem/418027-20150326-153035.png[/img]
Responder Citar

26/03/2015

Randrade

Bom brother.

Dê uma olhada no SqlFiddle. Coloquei um exemplo com as datas.
Em relação ao Excel, não posso testar agora. Porém se não funcionar, poste o erro, para que possa analisar.
Responder Citar

26/03/2015

José Jacinto

Segue um print.

[img:descricao=View001]http://arquivo.devmedia.com.br/forum/imagem/402352-20150326-155335.jpg[/img]

Não rolou (ainda).
Estou deixando de fazer algo?
Jothaz? Estou criando a View pelo assistente do Management Studio. Isso pode interferir?
Obrigado.
Responder Citar

26/03/2015

Jothaz

Esta havendo uma confusão com conceitos.

Olha pelo que estou entendendo você não esta criando a View esta só criando um Select.

Se quiser usar uma View deve criar um objeto do tipo View via script:

CREATE VIEW teste
AS
SELECT ID,EstadoID,NomeCidade
      ,convert(char,dt,103) as dt
  FROM Cidade


Ao executar o script acima vai ser criado um objeto do tipo View na estrutura do banco de dados, seria, a grosso modo, como salvar o Select, veja na imagem:

[img]http://arquivo.devmedia.com.br/forum/imagem/418027-20150326-160505.png[/img]


Este objeto vai ser usado como fonte de dados no Excel:

[img]http://arquivo.devmedia.com.br/forum/imagem/418027-20150326-160624.png[/img]


Como pode ser visto nas imagens anteriores funciona sem problemas.
Responder Citar

26/03/2015

José Jacinto

ok. Fazendo aqui. Value pela força pessoal. Logo retorno com o resultado.
Responder Citar

27/03/2015

Samuel Silva

José,

Sou novo no fórum, na verdade fiz o cadastro agora só pra responde vc.
Também uso o ERP Protheus e sempre tive esse mesmo problema, mas é simples vou explicar.

O que acontece é que o Protheus guarda a data como Char(8) no banco e com esse formato YYYYMMDD, então primeiro vc tem que converte ele para "Date" e depois formatar para DD/MM/YYYY.
Para converter eu uso o CAST("campo" As Date) e para formatar uso o que o Randrade disso no inicio CONVERT(CHAR,"campo",103)


Então ficaria assim:
SELECT CONVERT(CHAR,CAST(D2_EMISSAO AS date),103) as Emissao ,* FROM SD2010 


Boa tarde, Qual é a forma mais profissional de formatar uma data do formato YYYYMMDD para DD/MM/YYYY em uma VIEW no SQL SERVER 2008 R2? [img:descricao=Formatação de data em uma VIEW]http://arquivo.devmedia.com.br/forum/imagem/402352-20150326-125643.jpg[/img] Existe algum recurso no Management Studio que faça essa formatação? Desde já agradeço.
Responder Citar

27/03/2015

José Jacinto

Opa. Deu certo! Obrigado ao Samuel e a todos que me ajudaram.

[img:descricao=OK]http://arquivo.devmedia.com.br/forum/imagem/402352-20150327-121532.jpg[/img]

[img:descricao=OK]http://arquivo.devmedia.com.br/forum/imagem/402352-20150327-121555.jpg[/img]
Responder Citar

27/03/2015

José Jacinto

Não sei se seria neste tópico mesmo ou preciso abrir outro, mas por exemplo... alterei tudo dentro do modo DESIGN do Management Studio de forma manual. Digitando o Convert e etc... existe algum recurso ou local onde se pode fazer isso de forma mais "amigável"? Tipo algum campo PROPRIEDADES, etc... ou seria no modo manual mesmo?

Obrigado.
Responder Citar

27/03/2015

Randrade

Bom, não posso te dar certeza se existe ou não essa forma.
Porém, sempre ao trabalhar com Views, me foi repassado para trabalhar de forma manual, escrever o código mesmo.

Com o tempo, eu particularmente acho mais fácil do que utilizar o "Designer".
Porém se você quer respostas concretas, abra outro tópico, pois sua dúvida já foi respondida neste.
Responder Citar

27/03/2015

José Jacinto

Blz. Pessoal. Obrigado à todos!
Responder Citar