sql - 在 SQL 中将持续时间转换为秒
问题描述
我data
在 SQL 中有这张表,它显示了用户和持续时间,但持续时间有些时间是纯秒,而有些则混合在分钟和秒之间
User | Duration
--------------------------
A | 3:20
B | :38
CX | 1:43
V | 45
B | 6:35
... | ....
期望输出(纯秒)
User | Duration
--------------------------
A | 200
B | 38
CX | 103
V | 45
B | 395
... | ...
我一直在 SQL 中尝试不同的函数,但还没有找到一个同时适用于分钟部分和秒部分的函数
解决方案
一种方法是将字符串转换为时间类型,然后使用时间算术:
select datediff(second, 0, cast('00:' + right('0' + duration, 5) as time))
另一种方法仅使用字符串和数字操作:
select cast(left(duration, charindex(':', t) - 1) as int)*60 + cast(right(duration, 2) as int)
推荐阅读
- node.js - Heroku 说我没有 Procfile
- spring-boot - 使用源过滤获取 Spring Data Elasticsearch Query 中的所有非完整字段
- json - Azure ARM 模板部署。未提供模板参数的值
- flutter - 如何点击原生 iOS 弹出窗口以允许通知。(颤振集成测试)
- arrays - 从文本中提取不同的元素
- node.js - Mongoose:模式数组路径的值无效,得到值“未定义”
- javascript - React Native 中的组件不同步
- javascript - 如何将对象值从 Javascript 文件传递到 HTML 文件
- java - 打印出来的结果是什么意思。Java 中的 System.nanoTime()
- flutter - 堆叠多个图标以使 IconButton 颤动