Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 如何将表中的每一列转换为日期时间?星期一、日、年、时、时_Sql_Sql Server_Date_Datetime - Fatal编程技术网

Sql 如何将表中的每一列转换为日期时间?星期一、日、年、时、时

Sql 如何将表中的每一列转换为日期时间?星期一、日、年、时、时,sql,sql-server,date,datetime,Sql,Sql Server,Date,Datetime,我正在尝试将表中的每一列从mon-dd-yyyy-hh:mmAM更新为Datetime(yyy-mm-dd-hh:mm:ss.mmm)。我写了一个脚本,它会影响列,但似乎没有列得到更新 UPDATE ParadataDetail SET Value = Convert(datetime, Value, 120) WHERE MetaDataId = 29 如果出于某种原因这是不可能的,并且您确实(我的意思是)必须在varchar列中保留datetime值,并且您需要更改datetime值的字符

我正在尝试将表中的每一列从
mon-dd-yyyy-hh:mmAM
更新为Datetime(
yyy-mm-dd-hh:mm:ss.mmm
)。我写了一个脚本,它会影响列,但似乎没有列得到更新

UPDATE ParadataDetail
SET Value = Convert(datetime, Value, 120)
WHERE MetaDataId = 29
如果出于某种原因这是不可能的,并且您确实(我的意思是)必须在varchar列中保留datetime值,并且您需要更改datetime值的字符串表示形式,您可以使用双重转换:

UPDATE  ParadataDetail
SET Value = Convert(varchar(2048), Convert(datetime, Value, 100), 120)
WHERE MetaDataId = 29
如果sql server版本为2012或更高版本,则最好使用Try\u convert:

UPDATE  ParadataDetail
SET Value = Convert(varchar(2048), Try_Convert(datetime, Value, 100), 120)
WHERE MetaDataId = 29
这会将无法转换为datetime的所有值设置为null。

如果由于某种原因无法转换,并且您确实(我的意思是)必须将datetime值保留在varchar列中,并且您需要更改datetime值的字符串表示形式,则可以使用双重转换:

UPDATE  ParadataDetail
SET Value = Convert(varchar(2048), Convert(datetime, Value, 100), 120)
WHERE MetaDataId = 29
如果sql server版本为2012或更高版本,则最好使用Try\u convert:

UPDATE  ParadataDetail
SET Value = Convert(varchar(2048), Try_Convert(datetime, Value, 100), 120)
WHERE MetaDataId = 29

这会将所有无法转换为datetime的值设置为null。

为什么要在DB?MySQL或SQL Server中更新日期?并不是每个软件产品的名字上都有“SQL”是一样的。从代码上看,我已经删除了不相关的MySql标签。
Value
列的数据类型是什么?因此,如果
Value
列的数据类型是
DateTime
,则您的查询没有意义。请阅读Aaron Bertrand的。不要在varchar列中保留日期值。将数据类型更改为DateTime。为什么要在DB?MySQL或SQL Server中更新日期?并不是每个软件产品的名字上都有“SQL”是一样的。从代码上看,我已经删除了不相关的MySql标签。
Value
列的数据类型是什么?因此,如果
Value
列的数据类型是
DateTime
,则您的查询没有意义。请阅读Aaron Bertrand的。不要在varchar列中保留日期值。将数据类型更改为DateTime。我知道这是一个可怕的事情,这是一个通用的工作系统。不过,这非常有效,谢谢。我知道这是一个可怕的事情,这是一个通用的工作系统。不过,这非常有效,谢谢。