仮定は、質問が時間は常に 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