我正在尝试将表格中的每一列更新为yyyy-mm-dd hh:mm:ss.mmm
的日期时间(mon dd yyyy hh:mmAM
)。我写了一个影响列的脚本,但似乎没有列更新。
UPDATE ParadataDetail
SET Value = Convert(datetime, Value, 120)
WHERE MetaDataId = 29
答案 0 :(得分:2)
Your best option would be to change the data type of the Value
column to DateTime.如果由于某种原因这是不可能的,而且你真的,我的意思是真的必须将日期时间值保存在varchar列中,并且你需要更改日期时间值的字符串表示,你可以使用双转换:
UPDATE ParadataDetail
SET Value = Convert(varchar(2048), Convert(datetime, Value, 100), 120)
WHERE MetaDataId = 29
如果你的sql server版本是2012或更高版本,你最好使用Try_convert:
UPDATE ParadataDetail
SET Value = Convert(varchar(2048), Try_Convert(datetime, Value, 100), 120)
WHERE MetaDataId = 29
这会将无法转换为datetime的所有值设置为null。