sql >> Database teknologi >  >> RDS >> Sqlserver

Ændring af en nvarchar-kolonne til et datoformat

Så hvis du antager, at det er de eneste to formater i din kolonne, kan du gøre følgende:

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

OPDATERET

Ok, hvis du ønsker en anden kolonne, så kan du først oprette den og derefter udfylde værdierne:

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

Derefter kan du kontrollere kolonnen for at se, om værdierne er korrekte, og først derefter skal du slette DT_APP kolonne.

OPDATERING 2 Hvis du blot skal opdatere aktuelle værdier, så gør du bare:

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



  1. MySQL - Bedste metode til at gemme og indlæse varer

  2. Entity framework forbindelse med oracle database

  3. Sammenligning med NULL-værdier

  4. Peewee MySQL-server er gået væk