在表中,我有一列(AvgWaitTime),它以秒为单位存储数据值(数据类型:float),明智的。我有一个函数使用AvgWaitTime列和其他几列执行一些计算,并以时间格式返回一个值。我想将函数返回的值(时间格式)转换为秒(最好是小数,如果不是则为int)。操作数类型冲突:时间与int不兼容
select
(datepart(HH, dbo.fnGetMonthlyAverageWaitTime(m.RDate) * 60 * 60) +
datepart(mi, dbo.fnGetMonthlyAverageWaitTime(m.RDate) * 60) +
datepart(s, dbo.fnGetMonthlyAverageWaitTime(m.RDate)))[MonthlyAverageWaitTime]
from TelephonyMTD m
Error: Operand type clash: time is incompatible with int
所以,我试图运行这个命令:
select
(datepart(HH, GetDate() * 60 * 60) +
datepart(mi, GetDate() * 60) +
datepart(s, GetDate()))
现在它说,从数据类型的datetime隐式转换为int是不允许的。使用CONVERT函数来运行此查询。当我查看数据类型转换图表时,这是真的,我知道现在允许转换为int和float。
请指教。
'GETDATE()* 60',可能是你意思是...... GetDate())* 60'? –
摆脱函数也可能是一个好主意,将其更改为内联表值函数,或者如果这不起作用,至少每行调用它一次。 –