-7
我有一個叫DT_APP
列其中包含兩種格式更改nvarchar列到日期格式
Sep 4 2012 6:19PM
2013-04-30 23:38.34
我需要轉換1)到2)日期該列,但我需要它在nvarchar(19)
作爲數據類型在nvarchar(19)
。
我很感謝它應該在Datetime
格式,但它已被設置爲nvarchar(19)
。
感謝,
我有一個叫DT_APP
列其中包含兩種格式更改nvarchar列到日期格式
Sep 4 2012 6:19PM
2013-04-30 23:38.34
我需要轉換1)到2)日期該列,但我需要它在nvarchar(19)
作爲數據類型在nvarchar(19)
。
我很感謝它應該在Datetime
格式,但它已被設置爲nvarchar(19)
。
感謝,
因此,假設這些是你列的只有兩種格式,那麼你就可以做到以下幾點:
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]%'
謝謝Lamak但我需要的實際列轉換爲YYYY-MM-DD HH:MM:SS所以我有一個統一的列格式而不是兩個。謝謝。 – Djbril
@KaisMalique更新了我的答案 – Lamak
我需要它在同一列中。我需要它在Nvarchar(19)。謝謝。 – Djbril