Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Промяна на колона nvarchar във формат на дата

И така, ако приемем, че това са единствените два формата на вашата колона, тогава можете да направите следното:

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

АКТУАЛИЗИРАНО

Добре, ако искате друга колона, можете първо да я създадете и след това да попълните стойностите:

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

След това можете да проверите колоната, за да видите дали стойностите са правилни и едва тогава трябва да изтриете DT_APP колона.

АКТУАЛИЗАЦИЯ 2 Ако просто трябва да актуализирате текущите стойности, тогава просто направете:

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



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Групирайте данните по реда на промяна на стойността на колоната за групиране

  2. Въздействие на разширеното събитие query_post_execution_showplan в SQL Server 2012

  3. Как да добавите потребителска група на Active Directory като вход в SQL Server

  4. как да конвертирате датата във формат `mm/dd/yyyy`

  5. Генериране на редове въз основа на стойност на колона