sql-server - 如何在 SQL 中及时转换 int 列“HH:MM”?
问题描述
如何将int "Hour"和Int "Minute"转换为时间,然后获得两个不同时间的百分比?
从我正在使用的int列中获取总时间
Format((SUM([THOURS]) * 3600 + SUM([TMINUTES]) * 60 + SUM([TSECONDS])) / 3600,'00')+':'+Format((SUM([THOURS]) * 3600 + SUM([TMINUTES]) * 60 + SUM([TSECONDS])) % 3600/60,'00') as "Total Time"
我从上面的查询中得到了完美的时间。
但现在我想从我的两个int "Hour"和Int "Minute" 列表中 获取百分比计算。
我努力了
DECLARE @MS INT = 235216
select cast(dateadd(ms, @MS, '00:00:00') AS TIME(3))
它不符合我的要求。
有人有同样的想法吗?
解决方案
将您的时间字段转换为分钟,然后对分钟进行数学运算。此示例使用两个变量 - 您将使用您的字段名称。
Declare
@Allotted As Time = '08:00'
, @Taken As Time = '06:00'
Select Cast(DateDiff(Minute, '00:00', @Taken) As Numeric(17, 2)) / DateDiff(Minute, '00:00', @Allotted) as Percent_Of_Allotted_Time
推荐阅读
- javascript - 在反应路由器旁边使用反应 api 上下文
- unit-testing - Web 组件测试器中未定义聚合物
- html - 如何让 div 背景位于顶部?
- vba - 从 VBA 代码发送电子邮件的运行时错误“2147467259 (80004005)”
- python - 为 DataFrame 的两个子图制作单个图例
- unity3d - Unity - 带旋转的正弦和余弦圆周运动
- python - Sqlite 选择相似的字符串匹配
- javascript - 用 ul 隐藏 div,其中 li 带有特定文本
- join - 在 sequelize 中加入表
- javascript - 数据表预提交 2 个文件