在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