我正在运行查询以查找用户浏览的总时间。每个浏览会话都以秒为单位存储在数据库中,然后我将总秒数相加并将其转换为hh:mm:ss.
问题是当我将秒转换为hh:mm:ss
时。我希望它显示例如'78:20:00'
,但我不知道如何让代码完全像这样。当它超过24小时后,hrs列会回到00,因为它进入了一天。
我运行转换时间的查询可以在下面看到:
SELECT Username,
CONVERT(VARCHAR(12),DATEADD(SECOND,TotalTimeInSeconds,0),108) AS TotalHours
FROM #TotalSessionTime
答案 0 :(得分:1)
SELECT USERNAME,
CAST(TotalTimeInSeconds / (60 * 60) AS Varchar) + ':' +
CAST(TotalTimeInSeconds % (60 * 60) / 60 AS Varchar) + ':' +
CAST(TotalTimeInSeconds % (60) AS Varchar) AS TotalHours
FROM #TotalSessionTime
如果你想要分钟和秒钟总是两位数,那么你必须留下它们,这将是一个丑陋的例子,但是可以正常工作。
答案 1 :(得分:0)
试试这个......
DECLARE @TimeInSeconds int = 123400;
DECLARE @MyDate datetime;
SELECT @MyDate = CONVERT( DateTime, DATEADD( SECOND, @TimeInSeconds, 0))
SELECT CONVERT(CHAR(2), (DAY( @MyDate )-1) * 24 + DATEPART(hour,@MyDate)) + ':' + CONVERT(CHAR(2), DATEPART(minute, @MyDate)) + ':' + CONVERT(CHAR(2), DATEPART(SECOND, @MyDate))
你想要用零填充分钟和秒来确定它的2位数字。