我有一个数据库,其中包含处理订单所需的时间,我需要将其转换为SQL中的总分钟数。
我使用
以HH:MM:SS
格式了解如何执行此操作
LTRIM(DATEDIFF(MINUTE, 0, ProcessTime))
但是,无论何时超过一天,格式都会变为DD.HH:MM:SS
D之后的"."
是让我失望的,当我尝试运行代码时它会返回错误。
答案 0 :(得分:1)
假设值存储为字符串(因为这是存储DD.HH:MM:SS的唯一方法)
WITH T(D) AS
(
SELECT '04.12:07:59' UNION ALL
SELECT '12:07:59'
)
SELECT D,
CAST(LEFT(D,LEN(D)-8) AS float) * 24 * 60 + DATEDIFF(MINUTE, 0, RIGHT(D,8)) AS Mins
FROM T
返回
+-------------+------+
| D | Mins |
+-------------+------+
| 04.12:07:59 | 6487 |
| 12:07:59 | 727 |
+-------------+------+