微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

将秒数转换为 HH:MM:SS,小时数超过 24

如何解决将秒数转换为 HH:MM:SS,小时数超过 24

我想将 97200 秒转换为 HH:MM:SS 格式。我使用了以下 sql Server 语法,但只要小时数少于 24 小时,它就可以工作

select convert(varchar,dateadd(s,round(convert(double precision,round(97200,2)),2),0),114)

它给出了 03:00:00:000

但我想看 27:00:00

解决方法

你能试试这个查询吗?

DECLARE @RefDate DATETIME = CONVERT(datetime,'01.01.1900',104);
DECLARE @Seconds int = 97200;
DECLARE @CompareDate datetime = DATEADD(second,97200,@RefDate);

SELECT @Seconds,CAST(DATEDIFF(HOUR,@RefDate,@CompareDate) AS varchar(100))
       + ':'
       + CAST(DATEPART(MINUTE,@CompareDate) AS varchar(2))
       + ':'
       + CAST(DATEPART(SECOND,@CompareDate) AS varchar(2))
,

...从总秒数中计算小时、分钟、秒,并将它们连接到 hh:mm:ss

declare @sec int=97200; --123426
--in case hours >=100
select concat(right(concat(0,@sec/3600),isnull(nullif(len(@sec/3600),1),2)),':',right(concat(0,@sec%3600/60),2),@sec%60),2))

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。