gpt4 book ai didi

sql - 如何将持续时间添加到 hhmm 格式的字符串并将其转换回字符串?

转载 作者:行者123 更新时间:2023-12-03 02:04:34 24 4
gpt4 key购买 nike

我的表中有两列需要添加在一起。其中之一是带有军事时间的 varchar(4),减去冒号,包括前面的 0。另一种是 int,它描述约会的持续时间(以分钟为单位)。基本上我需要将两者添加在一起并将其保留为 varchar(4),所有格式都与第一列相同。我以前使用过 SQL,但没有以任何复杂的方式使用过。正确的做法是什么?谢谢!

我不必担心事情会延续到第二天。

例如:

time:       '1145'
duration: 45
sum: '1230'

time: '0915'
duration: 30
sum: '0945' (not '945')

最佳答案

假设问题指出时间将始终采用 4 位数格式 hhmm。该查询从字符串中提取 hh 和 mm 并转换为时间。将持续时间(以分钟为单位)添加到该时间值,然后使用 CONVERT 转换回字符串格式 hh:mm函数和冒号被从字符串中删除以恢复到原始格式。

Click here to view the demo in 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

关于sql - 如何将持续时间添加到 hhmm 格式的字符串并将其转换回字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10400453/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com