gpt4 book ai didi

sql - 总问题的两倍

转载 作者:行者123 更新时间:2023-12-04 13:07:40 24 4
gpt4 key购买 nike

表1

ID  |  WorkTime
-----------------
001 | 10:50:00
001 | 00:00:00
002 | ....

WorkTime 数据类型是 **varchar*(。

SELECT ID, 
CONVERT(varchar(10), TotalSeconds1 / 3600) + ':' + RIGHT('00' + CONVERT(varchar(2), (TotalSeconds1 - TotalSeconds1 / 3600 * 3600) / 60), 2) + ':' + RIGHT('00' + CONVERT(varchar(2), TotalSeconds1 - (TotalSeconds1 / 3600 * 3600 + (TotalSeconds1 - TotalSeconds1 / 3600 * 3600) / 60 * 60)), 2) AS TotalWork
From ( SELECT ID,
SUM(DATEDIFF(second, CONVERT(datetime, '1/1/1900'),
CONVERT(datetime, '1/1/1900 ' + WorkTime))) AS TotalSeconds1
FROM table1
group by ID) AS tab1
where id = '001'

上面的查询显示“总时间加倍”

例如

我想从表 1 计算总工作时间,当我运行上面的查询时它显示

ID 工作时间

001 21:40:00
002...,

但是应该是这样显示的

ID Worktime

001 10:50:00
...,

如何避免加倍工作时间。如何修改我的查询。

需要查询帮助

最佳答案

按照问题中描述的创建表和添加数据后,我仍然得到了 10:50:00 的预期答案。不确定为什么它不适用于 OP...

要简化查询并提高性能,最好将 WorkTime 的类型定义从 varchar 更改为 int。然后将工作间隔保存为总秒数。

这样就可以很简单地对间隔金额求和,然后对最终值执行显示格式。 (最好在应用程序中而不是在数据库中)

关于sql - 总问题的两倍,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2399362/

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