我有查询,必须将会议记录作为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点,但它显示1:60。
答案 0 :(得分:1)
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