sql >> Databasteknik >  >> RDS >> Sqlserver

Ändra en nvarchar-kolumn till ett datumformat

Så, förutsatt att det är de enda två formaten i din kolumn, kan du göra följande:

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

UPPDATERAD

Ok, om du vill ha en annan kolumn, då kan du först skapa den och sedan fylla i värdena:

-- 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

Efter det kan du kontrollera kolumnen för att se om värdena är korrekta och först då bör du ta bort DT_APP kolumn.

UPPDATERING 2 Om du bara behöver uppdatera aktuella värden gör du bara:

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



  1. mysql Åtkomst nekad för användare ''@'localhost' till databasen ''

  2. Vilken är den bästa datatypen för att lagra webbadresser i en MySQL-databas?

  3. Hur man formaterar siffror som valuta i PostgreSQL

  4. MySQL:Få senaste meddelandet från 2 tabeller som är associerade med varandra