sql >> Database >  >> RDS >> Sqlserver

Een nvarchar-kolom wijzigen in een datumnotatie

Dus, ervan uitgaande dat dit de enige twee formaten van uw kolom zijn, kunt u het volgende doen:

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

GE-UPDATE

Ok, als je nog een kolom wilt, dan kun je die eerst aanmaken en dan de waarden invullen:

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

Daarna kunt u de kolom controleren om te zien of de waarden correct zijn en alleen dan moet u de DT_APP verwijderen kolom.

UPDATE 2 Als u alleen de huidige waarden wilt bijwerken, doe dan gewoon:

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



  1. Proberen om INSERT te krijgen om alleen nieuwe gegevens in te voegen

  2. Oracle 12:deelnemen aan door komma's gescheiden lijst?

  3. SQL-syntaxisfout in de buurt van desc

  4. MySQL MIN/MAX geeft de juiste waarde terug, maar niet de gerelateerde recordinfo