gpt4 book ai didi

tsql - T-SQL 持续时间(小时):minutes:seconds

转载 作者:行者123 更新时间:2023-12-04 13:59:21 26 4
gpt4 key购买 nike

我有几个日期之间的平均持续时间(DATETIME 格式),即。 1900-01-01 01:30.00.00。如何将 DATETIME 转换为小时:分钟:秒格式,其中小时可以超过 24 - 输出格式可以是 VARCHAR。

IE.

1 days 12 hours 5 minutes convert to 36:05:00
2 days 1 hour 10 minutes 5 seconds convert to 49:10:05

等...

DECLARE @date1 DATETIME = '2011-08-03 13:30'
DECLARE @date2 DATETIME = '2011-08-03 13:00'
DECLARE @date3 DATETIME = '2011-08-03 14:00'
DECLARE @abc DATETIME = '2011-08-03 12:00'

select CAST(AVG(CAST(data-@abc as float)) as datetime)
from
(
select 'data' as label, @date1 as data
union all
select 'data' as label, @date2 as data
union all
select 'data' as label, @date3 as data
) as a
group by label

我想得到 01:30:00 的结果,这意味着平均时间是 1 小时 30 分钟。

我试过了:

CONVERT(VARCHAR(10), CAST(AVG(CAST(data-@abc as float)) as datetime), 108)

但后来我只得到 HH:MM:SS 中的时间部分。当我设置 @abc = 2011-08-02 时,结果将相同 - 这是不正确的。

国王问候,马尔辛

最佳答案

在 T-SQL 中,日期时间恰好是一个日期和时间,其中小时数永远不会超过 24,因为这会将它移到第二天。您可以使用 datepart 将日期时间值拼凑出来并将它们视为整数,然后将它们重新连接到您想要的字符串中。根据您的最终目标,您最好在应用程序或表示层中执行此类工作,因为在这些层中,更通用的语言通常具有更强大的日期时间库可供使用。

关于tsql - T-SQL 持续时间(小时):minutes:seconds,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6929328/

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