Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Alterando uma coluna nvarchar em um formato de data


Então, supondo que esses sejam os dois únicos formatos da sua coluna, você pode fazer o seguinte:
SELECT CONVERT(NVARCHAR(19),CONVERT(DATETIME,DT_APP,100),120)
FROM YourTable
WHERE DT_APP LIKE '%[aA-zZ]%'

ATUALIZADO

Ok, se você quiser outra coluna, então você pode primeiro criá-la e depois preencher os valores:
-- First create a new column
ALTER TABLE YourTable
ADD DT_APP2 DATETIME;

-- Fill that column with DATETIME values
UPDATE YourTable
SET DT_APP2 =   CASE WHEN DT_APP LIKE '%[aA-zZ]%'
                THEN CONVERT(DATETIME,DT_APP,100)
                ELSE CONVERT(DATETIME,DT_APP,120) END

Depois disso, você pode verificar a coluna para ver se os valores estão corretos e só então você deve excluir o DT_APP coluna.

ATUALIZAÇÃO 2 Se você só precisa atualizar os valores atuais, faça:
UPDATE YourTable
SET DT_APP = CONVERT(NVARCHAR(19),CONVERT(DATETIME,DT_APP,100),120)
WHERE DT_APP LIKE '%[aA-zZ]%'