sql >> Databáze >  >> RDS >> Sqlserver

Změna sloupce nvarchar na formát data

Takže za předpokladu, že se jedná o jediné dva formáty vašeho sloupce, můžete provést následující:

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

AKTUALIZOVÁNO

Dobře, pokud chcete další sloupec, můžete jej nejprve vytvořit a poté vyplnit hodnoty:

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

Poté můžete zkontrolovat sloupec, abyste zjistili, zda jsou hodnoty správné, a teprve poté byste měli smazat DT_APP sloupec.

AKTUALIZACE 2 Pokud potřebujete pouze aktualizovat aktuální hodnoty, udělejte to:

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



  1. Vztah rodičů a dětí s jedinou entitou v doktríně 2

  2. Použití předchozí datové složky MySQL na nové instalaci MySQL

  3. MySQL:sloupce s nízkou mohutností/selektivitou =jak indexovat?

  4. Vytvořte spouštěč vložení pro automatické zvýšení int pole složeného PK (String, int), restartujte číslování od 1 pro nové řetězce