Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Pessoal,
Peguei um sistema para fazer algumas alterações e estou enfrentando um problemão!
O sistema tem algumas colunas de data (dt_algumacoisa), com formato VARCHAR(10)...
Porém há registros utilizando data brasileira 00/00/0000 e datas americanas 0000-00-00.
Preciso fazer a conversão de todos os registros para DATE e emfim ficar em um formatação apenas..
Tentei alguns modos de CONVERT porém sem sucesso...
Alguém tem uma solução para isso?
Att,
você precisa identificar quais estao com data americana e data no formato Brasil
acho que montar uma funcao como mo Motta disse é uma saida
Lembrei da funcao ISDATE
Olha um exemplo:
declare @table table (valor varchar(10))
insert into @table values ('18/03/2012')
, ('2018-12-20')
select *
, isdate(valor) as conf_data
, case when isdate(valor) = 0 then CONVERT(DATE, valor, 103) else valor end as data_convertida
from @table
Eu faria uma FUNCTION ainda que provisória , se detectar uma barra faz uma regra de conversão senão (um traço) outra.
A síntaxe precisa não sei pois não trabalho com Sql Server.