如何将表中的每一列转换为日期时间? Mon y yyyy hH:mmAM

时间:2017-01-31 10:54:30

标签: sql sql-server date datetime

我正在尝试将表格中的每一列更新为yyyy-mm-dd hh:mm:ss.mmm的日期时间(mon dd yyyy hh:mmAM)。我写了一个影响列的脚本,但似乎没有列更新。

UPDATE ParadataDetail
SET Value = Convert(datetime, Value, 120)
WHERE MetaDataId = 29

1 个答案:

答案 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。