我有这些5000行的MsSQL表和一些列,其中一些值当前采用以下格式:
Nov 14 2016 2:42PM
Dec 15 2016 5:45PM
有没有办法将这些更新为:
2016-11-14 14:42:18.222
2016-12-15 17:45:38.333
或者至少是日期月份部分?
有些值是这样的:
2014-03-17T10:38:13.300
2014-10-20T13:26:00.267
如果有办法更新这些,我将不胜感激。
有些值就像这样:
2016-12-15 14:03:01.444
表格如下所示
id stockid attributeid value
1025183 64348 50 Nov 28 2016 1:02PM
1027332 15984 50 2014-10-20T13:26:00.267
1041149 69924 50 Nov 28 2016 1:17PM
1049041 71661 50 2016-12-15 16:54:03.130
列的数据类型属性设置为varchar。
答案 0 :(得分:3)
要更新现有值,您需要将它们存储为DateTime列。
将varchar值转换为DateTimes非常简单。
select CAST('Nov 14 2016 2:42PM' as DATETIME),
CAST('2014-03-17T10:38:13.300' as DATETIME)
返回
2016-11-14 14:42:00.000 and 2014-03-17 10:38:13.300
如果要更新表中的所有行,可以使用此语法。
UPDATE [TableName]
SET [ColumnName] = CAST([ColumnName] as DATETIME)
然后,您可以更改表并将列类型从Varchar更改为DateTime。虽然您可能需要修改访问此表列的任何代码并期望varchar。