转换小时时,从字符串转换日期和/或时间时转换失败

时间:2015-07-12 09:37:03

标签: sql-server stored-procedures casting sql-server-2012

我得到以下异常:

  从字符转换日期和/或时间时,

转换失败   串

在此声明中:

 select  CAST(RIGHT('0' + CAST(overtimeHours  as varchar(2)), 2) + ':00:00' As Time) 
 from #GPilot;

注意: overtimeHours = 24

时会发生这种情况

2 个答案:

答案 0 :(得分:2)

因为' 00:00:00'不是一个有效的时间。使用模数截断:

=Format(IIf(IsNumeric([YourField]), Val([YourField]), [YourField]), "0.00")

答案 1 :(得分:1)

没有24:00:00小时。您应该测试它是否为24,如果是,则返回00:00:00并在日期部分添加一天(如果您有日期部分),或者更改为23:59:59,或者仅使用模数在阿米特的answer。正确的做法取决于你在问题中没有分享的更广泛的背景。