2013-07-15 57 views
-7

我有一個叫DT_APP列其中包含兩種格式更改nvarchar列到日期格式

  1. Sep 4 2012 6:19PM
  2. 2013-04-30 23:38.34

我需要轉換1)到2)日期該列,但我需要它在nvarchar(19)作爲數據類型在nvarchar(19)

我很感謝它應該在Datetime格式,但它已被設置爲nvarchar(19)

感謝,

回答

6

因此,假設這些是你列的只有兩種格式,那麼你就可以做到以下幾點:

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]%' 
+0

謝謝Lamak但我需要的實際列轉換爲YYYY-MM-DD HH:MM:SS所以我有一個統一的列格式而不是兩個。謝謝。 – Djbril

+0

@KaisMalique更新了我的答案 – Lamak

+0

我需要它在同一列中。我需要它在Nvarchar(19)。謝謝。 – Djbril