如何在列数据类型为“varchar”的情况下进行加法?

How to do addition where column data type is `varchar`?

我正在研究一种逻辑,根据 DesiredDate 字段出现的一定次数,DesiredTime 应该递增。问题是 DesiredTimevarchar 所以我不能在那个领域做加法。实现此目标的最佳方法是什么?

例如,如果 10/08/2015 出现了 3 次,那么 DesiredTime 就是 11:45AM。在第 4 个 10/08/2015 条目上,DesiredTime 应该是 11:17AM,第 5 个应该是 11:19 等等。

方法 - 1:

UPDATE OrderInfo SET DesiredTime = DesiredTime + 2 WHERE OrderID = 39418875

错误:

Conversion failed when converting the varchar value '11:15AM' to data type int.

方法 - 2:

select * from OrderInfo 
where CONVERT(int, DesiredTime) ='11:45AM' 
  and OrderDate = '10/7/2015' 
  and RestaurantID = 4007 

错误:

Conversion failed when converting the varchar value '11:15AM' to data type int.

当前行为:

DesiredDate DesiredTime
----------- -----------
10/08/2015  11:15AM
10/08/2015  11:15AM
10/08/2015  11:15AM
10/08/2015  11:15AM
10/08/2015  11:15AM

预期行为:

DesiredDate DesiredTime
----------- -----------
10/08/2015  11:15AM
10/08/2015  11:15AM
10/08/2015  11:15AM
10/08/2015  11:17AM
10/08/2015  11:19AM

我根本不明白你的逻辑,但是要将时间添加到存储为 varchar 的时间值中,你可以使用 cast 将其转换为适当的 time 类型值,然后使用dateadd 添加时间。

dateadd(minute,2,cast(desiredtime as time))

这应该可以帮助您入门。