sql 求时间差
时分秒 格式(12:30:00)
CREATE FUNCTION [dbo].[F_TimeBetween] ( @start datetime, @end datetime, @PlanQty int -- 这个是用来算平均时间的 ) RETURNS varchar(10) AS BEGIN IF @PlanQty IS NULL RETURN right('00'+cast(cast(datediff(ss,@start,@end)/3600 as int) as varchar),2)+':'+ right('00'+cast(cast(datediff(ss,@start,@end)%3600/60 as int) as varchar),2)+':'+ right('00'+cast(cast(datediff(ss,@start,@end)%60 as int) as varchar),2) ELSE RETURN right('00'+cast(cast((datediff(ss,@start,@end)/@PlanQty)/3600 as int) as varchar),2)+':'+ right('00'+cast(cast((datediff(ss,@start,@end)/@PlanQty)%3600/60 as int) as varchar),2)+':'+ right('00'+cast(cast((datediff(ss,@start,@end)/@PlanQty)%60 as int) as varchar),2) RETURN '' END GO
秒转天
CREATE FUNCTION [dbo].[F_ConvertToDay] ( @Time decimal(10) ) RETURNS varchar(100) AS BEGIN IF @Time = 0 RETURN '0 天' ELSE RETURN CAST(CAST(@Time / (60*60*24) AS decimal(10,3)) AS VARCHAR) + ' 天' RETURN '' END GO
格式(**天 *小时*分*秒)
ALTER FUNCTION [dbo].[F_ConvertTime] ( @Time decimal(10) ) RETURNS varchar(100) AS BEGIN IF @Time = 0 RETURN '00:00:00' ELSE RETURN CAST(CAST(@Time / (60*60*24) AS INT) AS VARCHAR) + '天' + CAST(CAST(@Time % 86400 / 3600 AS INT) AS VARCHAR) + '小时' + CAST(CAST(@Time % 3600 / 60 AS INT) AS VARCHAR) + '分' + CAST(CAST(@Time % 60 AS INT) AS VARCHAR) + '秒' RETURN '' END GO
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?