我有一个用户从下拉列表中选择课程持续时间的在线表单。这些数据然后进入名为duration - varchar(5)的数据库字段,数据示例将是02:30。然后我运行一个存储过程,该过程应该将数据转换为2.5。这允许以小时工资率计算持续时间。将文本转换为数字
的Datafields
时间 - VARCHAR(5)02:30
ValueOfDuration - 数字(18,2)2.5
我的问题是此存储过程运行时,我得到一个错误。
将数据类型varchar转换为实数时出错。
UPDATE
ManualAdjustments
SET
ValueOfDuration = ROUND (CONVERT(real, LEFT(Duration, 2))+(CONVERT(real,RIGHT(Duration, 2))/60.0),2)
WHERE ValueOfDuration IS NULL
你使用的是什么RDBMS? – Jens
如果您使用的是Oracle,请使用TO_NUMBER而不是CONVERT。 –
为2:30值工作良好的sqlserver ..有没有一个特定的值,其不工作? –