Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.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中将varchar Meridiem时间更改为24小时时间_Sql_Sql Server 2005_Tsql - Fatal编程技术网

在Sql中将varchar Meridiem时间更改为24小时时间

在Sql中将varchar Meridiem时间更改为24小时时间,sql,sql-server-2005,tsql,Sql,Sql Server 2005,Tsql,我有这类数据 TimeOFDay列是varchar。我想在24小时内更改这个时间,使用SQL并更新TwentyFourTime列。TwentyFourTime列也是varchar 我怎样才能做到这一点 谢谢。请尝试以下查询: update tableName set TwentyFourHourTime = case TimeMeridiem WHEN 'PM' THEN Convert(varchar,dateadd(hour,12,TimeOFDay),108) ELSE Conver

我有这类数据


TimeOFDay列是varchar。我想在24小时内更改这个时间,使用SQL并更新TwentyFourTime列。TwentyFourTime列也是varchar

我怎样才能做到这一点


谢谢。

请尝试以下查询:

update tableName set  TwentyFourHourTime =
case TimeMeridiem 
WHEN 'PM' THEN Convert(varchar,dateadd(hour,12,TimeOFDay),108)
 ELSE Convert(varchar,TimeOFDay,108)
end

我已经写了这个测试-似乎有效。适用于午夜并添加前导零

更新:

结果:

TimeOfDay TimeMeridiem TwentyFourHourTime 
--------- ------------ ------------------ 
1:00      PM           13:00              
1:00      AM           01:00              
12:00     PM           00:00  

什么类型是TwentyFourHourTime?TwentyFourHourTime列也是varchar。事实上,问题是“:”。这:不允许将TimeOfDay强制转换为其他类型。
TimeOfDay TimeMeridiem TwentyFourHourTime 
--------- ------------ ------------------ 
1:00      PM           13:00              
1:00      AM           01:00              
12:00     PM           00:00