将时间格式DD.HH:MM:SS转换为SQL中的总分钟数

时间:2015-08-06 18:04:26

标签: sql sql-server date datetime

我有一个数据库,其中包含处理订单所需的时间,我需要将其转换为SQL中的总分钟数。

我使用

HH:MM:SS格式了解如何执行此操作
LTRIM(DATEDIFF(MINUTE, 0, ProcessTime))

但是,无论何时超过一天,格式都会变为DD.HH:MM:SS

D之后的"."是让我失望的,当我尝试运行代码时它会返回错误。

1 个答案:

答案 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 |
+-------------+------+