[英]remove decimal Place in SQL
代码:
days_between("Created Time","Locked Time")*24
结果数据库表:
Avg Response time (Hours)
2.91
6.00
9.13
3.65
1.17
0.00
0.77
32.47
上表是我在代码之后得到的结果,但现在我想删除所有小数位,那么我该怎么做。 我尝试使用 cast 和 round () 但不工作。 有人可以帮忙吗。 谢谢
尝试代码:days_between("Created Time","Locked Time")*24, 0) AS INT ) AS Response_Time
根据您的样本数据,我猜:
with t(d) as (
values (2.91), (6.00), (9.13), (3.65), (1.17), (0.00), (0.77), (32.47)
)
select d, cast(d/24 as decimal(5,2)) from t;
我在 MSSQL 上运行了一个类似的查询,我可以这样做:
SELECT TOP 10 a.SizeBytes AS originalValue
,COALESCE(a.SizeBytes, 0.00) / (1024 * 1024) AS defaultOperation
,CAST(COALESCE(a.SizeBytes, 0.00) / (1024 * 1024) AS INT) AS withCast
,FLOOR(COALESCE(a.SizeBytes, 0.00) / (1024 * 1024)) AS withFloor
,ROUND(COALESCE(a.SizeBytes, 0.00) / (1024 * 1024), 0) AS withRound
FROM filesUploaded a
WHERE a.SizeBytes > 0
请注意,我将查询限制在前 10 名,以加快生成此示例的速度,因为我的表包含数百万行。
我的起始值也是 integer,所以我必须添加小数才能看到小数。 可能您不需要这样做,因为平均值应该已经有小数,但在我的情况下,仅除法返回 integer 的除法结果,而在除法之前不使用COALESCE
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.