SQL 查询结果为整数,如何获取小数的总工作时长?
根据您提供的代码,可以看出您使用的是ROUND函数对计算结果进行四舍五入,并指定保留一位小数。但是,如果计算结果是整数,即使使用ROUND函数也不会得到小数。
要获取小数的结果,可以将计算结果除以60.0而不是60。这样会将结果转换为浮点数,并得到小数部分。
以下是修改后的代码:
SELECT
ROUND(
SUM(
CASE
WHEN bc = '自由工时' AND gzsc != 0 AND cqts = 1 THEN gzsc
WHEN bc = '自由工时' AND gzsc = 0 AND cqts = 1 THEN 480
WHEN bc = '自由工时' AND gzsc = 0 AND cqts = 0 AND chuchai = 1 THEN 480
WHEN bc <> '自由工时' AND gldspd LIKE '%出差%' THEN 480
ELSE 0
END
)/60.0, 1
) AS 总工作时长
FROM Test_kqzhb
WHERE rq BETWEEN '2023-09-01' AND '2023-09-25' and name='陈军峰'
GROUP BY name, bm;
这样,您应该可以得到保留一位小数的总工作时长结果。
原文地址: https://www.cveoy.top/t/topic/Kg9 著作权归作者所有。请勿转载和采集!