Используя SQL Сервер, у меня есть столбец с varchar
данными, поступающими из другого источника, отформатированными в псевдо-ЧЧ: ММ: строка SS, представляющая длительность, например:
Duration
HH:MM:SS
00:43:46
01:30:06
43:56:38
89:24:00
5890:01:00
Я хотел чтобы преобразовать его в простое значение минут (int
) для каждого
Duration MinuteDuration
HH:MM:SS mm
00:43:46 43
01:30:06 90
43:56:38 2636
89:24:00 5364
5890:01:00 353401
Я осмотрел stackoverflow и нашел несколько человек, предлагающих CONVERT с параметром TIME
USE [MyDB]
GO
SELECT [User],
[Duration],
(SELECT CONVERT(TIME, Duration, 8)) as DurationMinutes,
FROM [dbo].[MyTable]
GO
, но я не могу используйте это, так как мои значения часов могут быть больше, чем 24/12 (мое значение часов может быть в тысячах). Поскольку исходные данные находятся в varchar
, мне нужно сначала интерпретировать строку, затем умножить часы на 60 * и добавить ее к значению минут (и просто сбросить значение секунд).