Array
(
)

Converter para DateTime ?

Alexespina
   - 03 mai 2006

olá amigos....

tenho um campo que ele ta na tabela como varchar embora que ele esteja armazendo as datas + horas do sistema. tipo
(14/10/2005 05:44:48) nesse formato ! alguem sabe como eu faço para extrair somente o horario ?

Desde já obg pela atenção de todos aki no forum!

Bon Jovi
   - 06 mai 2006

Se realmente está sempre nesse formato vc pode usar substring a partir do charindex do espaço, que está separando a data da hora. Ex.:
#Código

declare @campo varchar(19)
set @campo = ´14/10/2005 05:44:48´

select substring(@campo, charindex(´ ´, @campo) + 1, 8)


Bon Jovi
   - 06 mai 2006

Ou mais simples com right():

#Código

select right(´14/10/2005 05:44:48´, 8)


It3r
   - 06 mai 2006

Olá alex...

Para ser mais simples ainda... poderá fazer...

convert(char, teu_campo_data, 103)

para testar vc poderá fazer isso:

select convert(char, getdate(), 103)

Espero ter ajudado,

Abraço, Iter Vinicius

Bon Jovi
   - 07 mai 2006


Citação:
Olá alex...
Para ser mais simples ainda... poderá fazer...
convert(char, teu_campo_data, 103)
para testar vc poderá fazer isso:
select convert(char, getdate(), 103)
Espero ter ajudado,
Abraço, Iter Vinicius

Nesse caso não funciona. O 103 é para a data, 108 que seria para a hora, vc deve ter trocado as bolas. E mesmo assim o campo dele não é datetime e sim varchar, aí nao funciona como acontece abaixo:

[size=9:93e47f344c]select convert(char, ´14/10/2005 05:44:48´, 103) [/size:93e47f344c]
Resultado, a mesma coisa: 14/10/2005 05:44:48
[size=9:93e47f344c]
select convert(varchar, ´14/10/2005 05:44:48´, 108) [/size:93e47f344c]
Resultado, a mesma coisa: 14/10/2005 05:44:48

Caso pro uso do convert seria:
[size=9:93e47f344c]select convert(varchar, getdate(), 108) [/size:93e47f344c]
Resultado, só a hora: 16:32:39
Funciona por getdate() ser datetime

It3r
   - 07 mai 2006

Exato Bon Jovi..

Realmente me enganei... obrigrado.

Abraço, Iter Vinicius