背景:计算两个时间(TimeA、TimeB)相隔时间,单位为小时,保留一位小数
SQL语句:
UPDATE TableX
SET TimeSpan = CAST(DATEDIFF(MINUTE, TimeA, TimeB) / 60.0 AS DECIMAL(9, 1))
WHERE 。。。。。
发现TimeSpan被设置为 1(预期为1.1,应有一位小数)
排查下来发现原因是:UPDATE时指定了 decimal(9,1),而建表时TimeSpan字段类型为decimal,默认为decimal(18,0)
所以建表时,对于这种在程序中可转为decimal的类型字段,尽量使用浮点数类型float或double