gpt4 book ai didi

tsql - 在 T-SQL 中将分钟格式化为小时和分钟

转载 作者:行者123 更新时间:2023-12-04 16:37:47 24 4
gpt4 key购买 nike

是否有一种干净简单的方法来格式化整数,该整数是整数分钟的计数,并将其转换为小时和分钟的十进制表示形式。非常遗憾的是,T-SQL 中没有 Timespan 之类的东西来支持这一点。

为了清楚我的意思是,如果我有 70 分钟,我想将其转换为 1 小时 10 分钟的表示,即 1.10 .我还想将其保留为 varchar 或其他内容,以确保尾随零保持原位。

无论如何,这可以作为 SQL 中的自定义函数创建,以便它可以从不同的查询中重用吗?

最佳答案

要获得小时数,您需要除以 60。要获得剩余的分钟数,您需要将总分钟数对 60 取模或总分钟数与小时数乘以 60 的差值。要使余数出现在小数位,除以 100.0:

SELECT minutes / 60 + (minutes % 60) / 100.0 ...

请注意,您将丢失尾随零,恕我直言,以这种方式存储持续时间是一个坏主意,因为 a) 您不能再用它做任何数学运算,并且 b) 稍后有人会在查看此代码时感到困惑。

您最好使用如下所示的字符串表示形式(我建议再次使用 ':' 而不是 '.',以表示这不是数字):
SELECT CAST((minutes / 60) AS VARCHAR(8)) + ':' + 
RIGHT('0' + CAST((minutes % 60) AS VARCHAR(2)), 2) ...

至于创建自定义函数,您可以创建一个存储过程,然后从其他代码中调用它。请注意,必须在每个数据库中创建存储过程。

不确定制作存储过程是否值得付出努力,除非您想要更高级并返回类似 TimeSpan 的行。

关于tsql - 在 T-SQL 中将分钟格式化为小时和分钟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/898658/

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