sql - 计算持续时间 SQL 的总和
问题描述
我使用以下 sql 来计算第一个查询中的持续时间。
CDate(TimeSerial(Val([EndTime])\100,Val([EndTime]) Mod 100,0)-TimeSerial(Val([StartTime])\100,Val([StartTime]) Mod 100,0))) AS Duration
现在,我想在另一个查询中进一步计算一周内不同课程的总时间。像 sum(iif(lesson="math",duration,0))
但由于是时候数据类型 sql server 不允许我使用 sum 函数。
我尝试了以下sql。
sum(hour(duration) + minute(duration)) AS Total_time
但这不是我所期望的,因为我想保留一些标准的原始格式。
有没有一种巧妙的方法可以做到这一点?谢谢你。
解决方案
我建议只接受以秒或十进制小时为单位的总时间:
select datediff("s", starttime, endtime) as diff_seconds,
datediff("s", starttime, endtime) / (60 * 60.0) as diff_hours
推荐阅读
- python-3.7 - Discord 模块从未使用过?
- python - 仅从 JSON 文件中抓取选择字段
- typescript - 打字稿:索引签名对象和其他类型的联合导致错误
- ocr - 正方体 4.0.0-beta.1 - 培训
- flutter - 使用 MediaQuery 的响应式元素对齐 - 使用不包含它的上下文调用
- python - 编写一个python程序来显示两个字符串之间的所有公共字符
- c++ - 我正在考虑为“A”类创建复制构造函数,但我不确定采用哪种方法
- selenium - 如果应用程序不支持隐式等待或显式等待,我们如何等待?我在 mycase 中使用 Thread.sleep()
- python-3.x - 使用并发期货优化异步的麻烦
- matplotlib - 为接收流数据的动画图输出 png 或 pdf 文件