-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