SQL服务器,将秒数转换为分钟,小时,天
发布时间:2020-05-24 00:11:43 所属栏目:MsSql 来源:互联网
导读:我有一个包含整数值的数据库列,该值表示以秒为单位的系统运行时间.我真的很喜欢一个查询能够以一个小时(s)小时的简单易读格式向我展示时间,但我不太清楚该怎么做.我发现的很多例子似乎都使用参数作为例子,但在select函数中如何使用它并没有多少. 我需要的时间
|
我有一个包含整数值的数据库列,该值表示以秒为单位的系统运行时间.我真的很喜欢一个查询能够以一个小时(s)小时的简单易读格式向我展示时间,但我不太清楚该怎么做.我发现的很多例子似乎都使用参数作为例子,但在select函数中如何使用它并没有多少. 我需要的时间与网站上显示的内容相同.我之前尝试了一个查询,并添加了几天并删除了分钟.谁能帮我吗? 来源数据: PDT0014 6141 PDT0008 4990 PDT0024 840227 PDT0033 2301 PDT0035 5439 PDT0005 3434 PDT0019 5482 示例代码: SELECT tblAssets.AssetName,(case when tblAssets.Uptime> (24*60*60)
then
cast(datepart(day,datediff(dd,dateadd(second,tblAssets.Uptime,0))) as varchar(4))
+ ' Day(s) ' + convert(varchar(2),0),108) +' Hour(s)'
else
convert(varchar(5),108) + ' Hour(s) Minute(s) '
end) AS Uptime
FROM tblAssets
期望的查询输出: PDT0014 01:42 Hour(s) Minute(s) PDT0008 01:23 Hour(s) Minute(s) PDT0024 10 Day(s) 17 Hour(s) PDT0033 00:38 Hour(s) Minute(s) PDT0035 01:30 Hour(s) Minute(s) PDT0005 00:57 Hour(s) Minute(s) PDT0019 01:31 Hour(s) Minute(s) 解决方法我倾向于使用:CAST(FLOOR(seconds / 86400) AS VARCHAR(10))+'d ' +
CONVERT(VARCHAR(5),DATEADD(SECOND,Seconds,'19000101'),8)
顶部部分只是以整数形式获取您的日期,底部使用SQL-Server的转换将日期转换为varchar,格式为HH:mm:ss,将秒转换为日期. 例如 SELECT Formatted = CAST(FLOOR(seconds / 86400) AS VARCHAR(10))+'d ' +
CONVERT(VARCHAR(5),8),Seconds
FROM ( SELECT TOP 10
Seconds = (ROW_NUMBER() OVER (ORDER BY Object_ID) * 40000)
FROM sys.all_Objects
ORDER BY Object_ID
) S
Example on SQL Fiddle 注:更改CONVERT(VARCHAR(5),DATEADD(..到CONVERT(VARCHAR(8),DATEADD(..以保持结果中的秒数) 编辑 如果你不想要秒并且需要舍入到最接近的分钟而不是截断你可以使用: SELECT Formatted = CAST(FLOOR(ROUND(Seconds / 60.0,0) * 60 / 86400) AS VARCHAR(10))+'d ' +
CONVERT(VARCHAR(5),ROUND(Seconds / 60.0,0) * 60,Seconds
FROM ( SELECT Seconds = 3899
) S
我刚刚将每个引用替换为列秒: ROUND(Seconds / 60.0,0) * 60 因此,在进行转换之前,将秒值舍入到最接近的分钟 (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
