假设问题是时间将始终采用 4 位格式 hhmm。查询从字符串中提取 hh 和 mm 并转换为时间。以分钟为单位的持续时间被添加到此时间值,然后使用CONVERT函数转换回字符串格式 hh:mm,并且从字符串中删除冒号以恢复原始格式。
单击此处查看 SQL Fiddle 中的演示。
脚本:
CREATE TABLE timevalues
(
timestring VARCHAR(20) NOT NULL
, duration INT NOT NULL
);
INSERT INTO timevalues (timestring, duration) VALUES
('1145', 30),
('2345', 25),
('0815', 125);
SELECT timestring
, duration
, REPLACE(CONVERT(VARCHAR(5), DATEVALUE, 108), ':', '') AS newtimevalue
FROM
(
SELECT timestring
, duration
, DATEADD(MINUTE,
duration,
CAST(
( SUBSTRING(timestring, 1, 2) + ':' +
SUBSTRING(timestring, 3, 2)
) AS DATETIME
)
) AS DATEVALUE
FROM timevalues
) T1;
输出:
timestring duration newtimevalue
---------- -------- -------------
1145 30 1215
2345 25 0010
0815 125 1020