我有查询,必须以HH:MM格式提供分钟。
SELECT (cast(SUM(convert(int,total)) / 60 as varchar(5))+':' +
RIGHT('0' +cast(sum(convert(int,total) % 60) as varchar(2)),2))
FROM (SELECT CASE(clnt_cntLngth)
WHEN 0 THEN '15'
WHEN 1 THEN '30'
WHEN 2 THEN '60'
WHEN 3 THEN '120'
WHEN 4 THEN '300'
ELSE '0' END as total from dbo.clientInfo) as tbl`
从here引用。对于某些值而不是某些值,它给出了良好的结果。我不知道为什么例如,请参见下面的结果图像。
这给写的答案
ANS这给出了错误的输出
这些之间有什么区别。任何人都可以建议其他方法来实现此目的以获得准确的输出。我什么都没改变。第一个是写答案,第二个必须是1:00,但显示为1:60。
最佳答案
CREATE FUNCTION [dbo].[IntToMinutes]
(
@m int
)
RETURNS nvarchar(20)
AS
BEGIN
DECLARE @c datetime
DECLARE @c1 datetime
SELECT @c =dateadd(mi,0,'00:00')
select @c1 = dateadd(mi,@m,'00:00')
return CONVERT(varchar(10),DATEDIFF(hh, @c, @c1) ) + ':' +
CONVERT(varchar(10),DATEDIFF(mi,DATEADD(hh,DATEDIFF(hh, @c, @c1),@c),@c1) )
end
关于sql - 如何将分钟转换成HH:MM格式,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19374995/