Ir para conteúdo

POWERED BY:

Arquivado

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

melis

Problemas com convert

Recommended Posts

Olá Gente.. estou usando o SQL Server 2005 e estou com problemas na conversão de datas...

 

 

O problema é o seguinte: tenho um campo data que tenho que comparar com outro campo ( que deveria ser uma data, mas é string). O problema é que nesse campo que deveria ser uma data, os dados estão inseridos sem o '-', então quando eu uso o convert 120 ele dá erro, já que não tem os tracinhos...Um exemplo de uma tupla da coluna a ser convertida : 20100304141500 O formato deveria ser (yyyy-mm-dd HH:MM:SS)

 

O SQL é o seguinte:

(DATEADD (DAY, 12, data_pedido) >= CONVERT(datetime,departure_time,120)) AND

(DATEADD (DAY, 16, data_pedido) < CONVERT(datetime,departure_time,120)) AND

 

Como faço pro campo departure_time ser convertido corretamente para que eu consiga fazer a comparação???

 

O erro dado: Msg 241, Conversion failed when converting datetime from character string.

Compartilhar este post


Link para o post
Compartilhar em outros sites
Um exemplo de uma tupla

Confesso que levei 5 seg para lembrar o que era tupla... rsrs =P

 

Mas acho que o que voce quer é mais ou menos isso?

 

select CONVERT(char,<Campo>,112) as Data from teste01

where CONVERT(char,<Campo>,112) between '20110618'and '20110619'

 

 

Flw

Compartilhar este post


Link para o post
Compartilhar em outros sites
Um exemplo de uma tupla

Confesso que levei 5 seg para lembrar o que era tupla... rsrs =P

 

Mas acho que o que voce quer é mais ou menos isso?

 

select CONVERT(char,<Campo>,112) as Data from teste01

where CONVERT(char,<Campo>,112) between '20110618'and '20110619'

 

 

Flw

Muito tempo que eu tambem nao lei este termo.

Eu acho que vai ter que ir de substring:

 

exemplo:

 

declare @data_inicial varchar(500)
declare @data_final datetime

set @data_inicial = '20100304141500'
set @data_final = '2010-04-30'

select convert(datetime,(
substring(@data_inicial,1,4) + '/' + substring(@data_inicial,5,2) + '/' + substring(@data_inicial,6,2) + ' ' + substring(@data_inicial,9,2) + ':'+ substring(@data_inicial,11,2) + ':' + substring(@data_inicial,13,2) 
),120) 

 

 

 

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
Um exemplo de uma tupla

Confesso que levei 5 seg para lembrar o que era tupla... rsrs =P

 

Mas acho que o que voce quer é mais ou menos isso?

 

select CONVERT(char,<Campo>,112) as Data from teste01

where CONVERT(char,<Campo>,112) between '20110618'and '20110619'

 

 

Flw

 

Acho q se ele colocar nvarchar é melhor

select CONVERT(nvarchar,<Campo>,112) as Data from teste01

where CONVERT(nvarchar,<Campo>,112) between '20110618'and '20110619'

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.