sql >> Base de Datos >  >> RDS >> Sqlserver

Cambiar una columna nvarchar a un formato de fecha

Entonces, suponiendo que esos son los únicos dos formatos de su columna, entonces puede hacer lo siguiente:

SELECT CONVERT(NVARCHAR(19),CONVERT(DATETIME,DT_APP,100),120)
FROM YourTable
WHERE DT_APP LIKE '%[aA-zZ]%'

ACTUALIZADO

Bien, si desea otra columna, primero puede crearla y luego completar los 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

Después de eso, puede verificar la columna para ver si los valores son correctos y solo entonces debe eliminar el DT_APP columna.

ACTUALIZACIÓN 2 Si solo necesita actualizar los valores actuales, simplemente haga:

UPDATE YourTable
SET DT_APP = CONVERT(NVARCHAR(19),CONVERT(DATETIME,DT_APP,100),120)
WHERE DT_APP LIKE '%[aA-zZ]%'