Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Lilian Butkevicis

Converter Campo Data

Recommended Posts

Bom tarde,

 

Faço um select no meu banco de dados com diversos campos, numa determinada linha tem a seguinte instruçao

 

LTRIM(RTRIM(char (34) + CAST(ISNULL(PROPO.DT_DECIS_PROPO_ALTER,'') AS VARCHAR(20)) + char (34)))

 

O resultado que ele me retorna

 

"Jan 3 2008 12:00AM"

 

Exatamente entre aspas, que é e o que eu preciso.

 

Mas este nao é o formato que eu preciso. O que eu quero é algo do tipo

 

"01/03/2008" ou "03/01/2008"

 

Pensei em mudar a instruçao para

 

LTRIM(RTRIM(char (34) + CAST(ISNULL(PROPO.DT_DECIS_PROPO_ALTER,'') AS DATETIME) + char (34)))

 

Mas aí ocorre o seguinte erro:

 

Syntax error converting datetime from character string.

 

Já usei o CONVERT e tanto o resultado quanto o erro são os mesmos.

O que estou fazendo de errado?

 

Valeu pela atenção..

 

http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

da uma estuda neste tópico, tem tudo sobre datas: http://forum.imasters.com.br/index.php?showtopic=224454

 

bons estudos

t+

 

Então Erivelton, olhei o tópico mas não consegui identificar o porque meu resultado não retorna o formato que eu quero, visto que estou usando o cast certo. (Pelo menos parece que sim :blink: ).

 

Nao sei, mas talvez seja algo com o char(34)... :mellow:

Compartilhar este post


Link para o post
Compartilhar em outros sites

da uma estuda neste tópico, tem tudo sobre datas: http://forum.imasters.com.br/index.php?showtopic=224454

 

bons estudos

t+

 

Então Erivelton, olhei o tópico mas não consegui identificar o porque meu resultado não retorna o formato que eu quero, visto que estou usando o cast certo. (Pelo menos parece que sim :blink: ).

 

Nao sei, mas talvez seja algo com o char(34)... :mellow:

 

 

Olha só, acredito que não seja a forma ideal e com certeza deve ter um jeito melhor de fazer isso.

Mas quebrei a cabeça aqui e não achei nada.

 

Até que manipulando, quebrando a informação em partes e depois juntando tudo de novo, deu certo. :rolleyes:

 

A instrução no select ficou assim agora:

 

CHAR(34) + RIGHT('0' + CAST(DAY(PROPO.DT_DECIS_PROPO_ALTER) AS VARCHAR(2)),2) + '/' +RIGHT('0' + CAST(MONTH(PROPO.DT_DECIS_PROPO_ALTER) AS VARCHAR(2)),2) + '/' + CAST(YEAR(PROPO.DT_DECIS_PROPO_ALTER) AS VARCHAR(4)) + CHAR(34) DECISAO,

 

:blink:

 

Isso me retornar a data no formato que eu preciso: "04/01/2008", por exemplo.

 

Bom acho que é isso, se alguém souber um outro jeito para melhor isso eu ficarei MUITO grata... http://forum.imasters.com.br/public/style_emoticons/default/blush.gif

 

Uma ótima tarde a todos http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

outra forma seria usar o convert com o código 103, da mesma forma que mostra os exemplos no nosso post especial sobre datas:

 

exemplo

declare @dt1 datetime
set @dt1 = '2008-01-03'
select LTRIM(RTRIM(char (34) + CONVERT(VARCHAR(10),ISNULL(@dt1,''),103) + char (34)))
dai é só adaptar ai

 

 

abs

t+

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.