CREATE FUNCTION fn_Get_Date_Diff_Info
(
@StartTime DATETIME,
@EndTime DATETIME
)
RETURNS VARCHAR(50)
AS
BEGIN
RETURN( CAST(FLOOR(DATEDIFF(MINUTE, @StartTime, @EndTime) / 1440) AS VARCHAR)
+ '天'
+ CAST(FLOOR(( DATEDIFF(MINUTE, @StartTime, @EndTime) % 1440 ) / 60) AS VARCHAR)
+ '小时'
+ CAST(FLOOR(( ( DATEDIFF(MINUTE, @StartTime, @EndTime) )
- ( FLOOR(DATEDIFF(MINUTE, @StartTime, @EndTime) / 1440)
* 1440 ) - ( FLOOR(( DATEDIFF(MINUTE, @StartTime,
@EndTime) % 1440 )
/ 60) * 60 ) ))
+ CASE WHEN DATEPART(SECOND, @StartTime) > DATEPART(SECOND, @EndTime)
THEN -1
ELSE 0
END AS VARCHAR) + '分钟'
+ CAST(DATEDIFF(SECOND, @StartTime, @EndTime) % 60 AS VARCHAR) + '秒');
END;
使用:
select dbo.fn_Get_Date_Diff_Info('2022-11-15 16:35:00','2022-11-16 11:33:00')