sql - 如何将时间总和作为浮点数
问题描述
一个表有一个浮点数据类型的时间列,如下所示:
40m
11m
2m
0m
3m
1m
1m
如何将这些值相加以在小时和分钟内得到它?
解决方案
您可以使用 Gordon 的答案,它直接利用 SQL Server 的内置时间能力。另一种方法是计算时间列总和所代表的小时数和分钟数的“蛮力”方法:
WITH cte AS (
-- strip off 'm' units and convert to numbers
SELECT CONVERT(int, REPLACE(time, 'm', '')) AS time
FROM yourTable
)
SELECT
CONVERT(varchar(10), FLOOR(SUM(time) / 60)) + ':' +
CONVERT(varchar(10), FLOOR(SUM(time) % 60)) AS timestamp
FROM cte;
演示
该演示表明,即使您的列中的分钟数应该超过 24 小时,该逻辑仍然有效。
推荐阅读
- r - r代码中带有轮廓图的错误代码
- javascript - Google 地方信息覆盖自动完成关闭
- python - 从 XML 标记创建原始文本
- ios - 当所有视图都与等宽约束对齐时,如何隐藏一些视图?
- excel - VBA 函数返回 0
- javascript - Google App Script - Web App - 获取活动工作表名称
- javascript - 在 HTMLUnit 中获取动态注入内容的问题
- powershell - PowerShell Active Directory lastLogon/lastLogonTimestamp -- 带有填充 lastLogonTimestamps 的空 lastLogon
- python - 在 matplotlib 中自动缩写长度字符串
- c# - 如何在模拟 FromSql() 方法时克服 IQueryable 不实现 IAsyncQueryProvider?