我正在研究一种逻辑,根据DesiredDate
字段的特定次数,DesiredTime
应该递增。问题是DesiredTime
是varchar
,所以我不能在该字段中添加。实现这一目标的最佳方法是什么?
例如,如果10/08/2015
发生3次,则DesiredTime
为11:45AM
。在10/08/2015
次DesiredTime
条目中,11:17AM
应该是11:19
,第五个应该是UPDATE OrderInfo SET DesiredTime = DesiredTime + 2 WHERE OrderID = 39418875
&等等。
方法 - 1:
select * from OrderInfo
where CONVERT(int, DesiredTime) ='11:45AM'
and OrderDate = '10/7/2015'
and RestaurantID = 4007
错误:
将varchar值'11:15AM'转换为数据时转换失败 输入int。
方法 - 2:
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
错误:
将varchar值'11:15AM'转换为数据时转换失败 输入int。
当前行为:
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
预期行为:
int64
答案 0 :(得分:2)
我根本不了解您的逻辑,但为了将时间值添加到存储为varchar的时间值,您可以使用cast
将其转换为正确的time
类型值,然后使用dateadd
为其增加时间。
dateadd(minute,2,cast(desiredtime as time))
这应该可以让你开始。