我的表格中有一列。我们在其中以'HH:MM'格式存储字符串值。在使用此表获取记录的过程中,一切正常

DATEDIFF(MINUTE, '00:00', ColumnName)

问题是当我们的Value大于23:59时。
其显示错误如



有人可以建议我实现此方案的正确方法吗?

最佳答案

因此,听起来就像您节省了一段时间。尝试在几分钟内存储它。我的查询基于冒号,因此可以处理不同长度的数字。

DECLARE @yourTable TABLE (ColumnName VARCHAR(10));
INSERT INTO @yourTable
VALUES  ('100:00'),
        ('24:20');

SELECT  ColumnName,
        (hr * 60) + minut AS time_period_in_minutes
FROM @yourTable
CROSS APPLY (SELECT CAST(SUBSTRING(ColumnName,0,CHARINDEX(':',ColumnName)) AS INT),
                    CAST(SUBSTRING(ColumnName,CHARINDEX(':',ColumnName) + 1,LEN(ColumnName)) AS INT)) CA(hr,minut)

结果:
ColumnName time_period_in_minutes
---------- ----------------------
100:00     6000
24:20      1460

关于sql - 如何像场景一样处理DATEDIFF(MINUTE, '00:00', '24:20')?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30755969/

10-12 14:16