更新DateTime值格式



我有MSSQL表,其中有这些5000行和一列,其中某些值当前以一种格式:

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。

要更新现有值,您需要将它们存储为DateTime列。

将VARCHAR值投放到数据时非常简单。

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。

最新更新