You need to create a new column to receive your converted data and then delete the old column, then just rename the new column.
An important detail in your select is data filtering, since you have EMPTY fields, this can generate default values in the conversion.
So you need to filter your NULL
and VAZIOS
fields so that your conversion works fine without the minimum dates: 1900-01-01 00:00:00.000
What causes this are your EMPTY fields, but since you can not convert a NULL to a date we will filter them too.
declare @tb_processos table
(
id int,
DataParcelaAntiga nvarchar(50)
)
insert into @tb_processos values
(1, '27/02/2017'),
(2, '28/02/2017'),
(3, ''),
(4, null)
select * , CONVERT(datetime, DataParcelaAntiga, 103) from @tb_processos
where DataParcelaAntiga is not null
and len(DataParcelaAntiga) > 0
Your update would look like this.
UPDATE P
SET P.DataAux = CONVERT(datetime, P.DataParcelaAntiga, 103)
from tb_processos as P
where P.DataParcelaAntiga is not null
and len(P.DataParcelaAntiga) > 0;