操作数类型冲突:时间与浮点数不兼容

时间:2014-03-19 02:14:30

标签: tsql

我将用户输入的时间节省为45分钟为75分钟,然后在向用户显示数据时,我需要将其转换回45分钟。但是它是一个浮点列,我正在尝试使用以下t-sql语句将其转换回来:

UPDATE  #T1
SET     #T1.HOURS = ( CONVERT(TIME, DATEADD(mi,(#T1.Hours * 60 ), '00:00')) )
WHERE   #T1.HOURS <= 24 

但它给我发了以下错误:

Operand type clash: time is incompatible with float

我还尝试使用以下函数将#Ti.Hours值转换为字符串

STR(#T1.Hours, 18,2) 

但抛出的错误仍然相同

有人可以帮我解决这个问题吗?

由于

1 个答案:

答案 0 :(得分:0)

使用以下内容。

SUBSTRING(T1.HOURS, 0, CHARINDEX('.',T1.HOURS)) + ':' + (SUBSTRING(T1.HOURS,
                                    CHARINDEX('.',
                                              T1.HOURS)
                                    + 1,
                                    LEN(T1.HOURS)) * 60) / 100

我还必须通过

将T1.Hours转换为字符串
    Str(T1.Hours,18,2) and use a LTrim function